ThreadLocal成员变量和普通的成员变量对比
2017-04-26 21:38
537 查看
示例:
public class ThreadLocalTest {
}
输出结果为:
hello
world
null
world
从结果中可以看出,threadlocal类型的变量时每个线程独有的,而普通的成员变量是线程共享的。
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类型的变量时每个线程独有的,而普通的成员变量是线程共享的。
相关文章推荐
- ThreadLocal和线程的普通成员变量究竟有什么区别?
- PHP 类的静态成员变量和普通成员变量对比
- PHP代码优化 成员变量获取速度对比
- java中对象多态时成员变量,普通成员函数及静态成员函数的调用情况
- Java类成员变量、普通成员变量、初始化块、构造方法的初始化和执行顺序
- Java类成员变量、普通成员变量、初始化块、构造方法的初始化和执行顺序
- PHP代码优化之成员变量获取速度对比
- c++ class类成员用指针还是用普通变量认识
- c++类的成员变量使用普通变量还是指针
- 静态成员函数不能调用普通成员变量
- static全局变量/全局变量,static函数/普通函数,函数中static变量/函数中的变量,类中的static成员变量/普通类成员变量
- 第01天OC语言(12):局部变量和全局变量以及成员变量对比
- Java类成员变量、普通成员变量、初始化块、构造方法的初始化和执行顺序
- 静态加载顺序,类static变量也有默认值(不同于C++),普通成员变量直接赋值语句和非静态语句块的执行位置
- 关于指针作为函数参数传递的理解,对比普通变量作为函数参数的需注意点,其实就是行参和实参的问题。
- 普通成员变量与静态成员变量的区别、普通成员方法与静态成员方法的区别
- Java中静态块,静态成员变量,构造块,普通成员变量,构造方法的执行顺序
- java基础-ThreadLocal变量和普通变量的区别
- java中对象多态时成员变量,普通成员函数及静态成员函数的调用情况
- [C++]static全局变量/全局变量,static函数/普通函数,函数中static变量/函数中的变量,类中的static成员变量/普通类成员变量