ThreadLocal

来源:互联网 发布:电脑网络节点 编辑:程序博客网 时间:2024/05/16 13:43

Test1

public class Test1 {public static ThreadLocal<String> tt = new ThreadLocal<String>();public static void main(String args[]) {tt.set("xiaogao");new Test2().print();}}

Test2

public class Test2 {public void print(){System.out.println(Test1.tt.get());}}
  现在可以打印“xiaogao”

修改后的Test2

public class Test2 {public void print(){new Thread(new Runnable(){public void run(){System.out.println(Test1.tt.get());}}).start();}}

  现在打印的却是null。查看set和get的方法第一句话都是Thread t = Thread.currentThread();可见他们是一个线程,如果像修改后的Test2,新new了一个线程,就取不到了。