您的位置:首页 > 其它

ThreadLocal成员变量和普通的成员变量对比

2017-04-26 21:38 537 查看
示例:

public class ThreadLocalTest {

private ThreadLocal<String> tl = new ThreadLocal<String>();
private String name;

public void set(String str, String name){
tl.set(str);
this.name = name;
//System.out.println(Thread.currentThread().getName()+":"+str);
}

public String get(){
return tl.get();
}

public String getName(){
return name;
}

public static void main(String[] args) {
final ThreadLocalTest tlt = new ThreadLocalTest();
new Thread(new Runnable() {

public void run() {
tlt.set("hello", "world");
System.out.println(tlt.get());
System.out.println(tlt.getName());
}
}).start();

new Thread(new Runnable() {

public void run() {
System.out.println(tlt.get());
System.out.println(tlt.getName());
}
}).start();

}


}

输出结果为:

hello

world

null

world

从结果中可以看出,threadlocal类型的变量时每个线程独有的,而普通的成员变量是线程共享的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐