简单例子演示 ThreadLocal 类的使用方法详解编程语言

/** Demonstrate use of ThreadLocal */ 
public class ThreadLocalDemo extends Thread { 
 
  /** A serial number for clients */ 
  private static int clientNum = 0; 
 
  /** This ThreadLocal holds the Client reference for each Thread */ 
  private ThreadLocal myClient = new ThreadLocal() { 
    // The initialValue() method is called magically when you call get(). 
    protected synchronized Object initialValue() { 
      return new Client(clientNum++); 
    } 
  }; 
 
  public void run() { 
    System.out.println("Thread " + Thread.currentThread().getName() + 
      " has client " + myClient.get()); 
  } 
 
  public static void main(String[] args) { 
    Thread t1 = new ThreadLocalDemo(); 
    Thread t2 = new ThreadLocalDemo(); 
    t1.start(); 
    t2.start(); 
  } 
 
  /** Simple data class, in real life clients would have more fields! */ 
  private class Client { 
 
    private int clNum; 
 
    Client(int n) { 
      clNum = n; 
    } 
 
    public String toString() { 
      return "Client[" + clNum + "]"; 
    } 
  } 
}

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/10895.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论