Java ThreadLocal 解析
2016-03-27 19:40
531 查看
package concurrent; /* * @author: wjf * @version: 2016年3月27日 下午2:44:46 */ public class TestThreadLocal { /* * threadLocal 会为线程创建一个共享变量的本地副本,这样的话,可以在线程内部任意使用,而又不影响其他线程,这样一来就不会产生线程安全问题, * 也不会严重影响性能,但是有一点:使用 threadLocal 肯定需要耗费更大的内存 */ /* * threadLocal 重写 initialValue 方法,就可以不用调用 set() 方法,否则如果不调用 set 方法的话,initialValue * 方法默认返回 null */ ThreadLocal<Long> locall=new ThreadLocal<Long>(){ protected Long initialValue(){ return Thread.currentThread().getId(); } }; ThreadLocal<String> locals=new ThreadLocal<String>(){ protected String initialValue(){ return Thread.currentThread().getName(); } }; public void set(){ locall.set(Thread.currentThread().getId()); locals.set(Thread.currentThread().getName()); } public void get(){ System.out.println(locall.get()); System.out.println(locals.get()); } public static void main(String[] args) throws InterruptedException { // TODO Auto-generated method stub final TestThreadLocal test=new TestThreadLocal(); // test.set(); test.get(); Thread thread1=new Thread(){ public void run(){ test.set(); test.get(); } }; thread1.start(); thread1.join(); test.get(); } }
相关文章推荐
- Java之IO流总结
- JAVA基础-子类继承父类实例化对象过程
- java循环练习:手动输入两个数字m和n,运算求出m~n之间所有偶数的和
- JavaI/O体系详解
- JavaI/O体系详解
- Struts2内建的拦截器
- 20145232 韩文浩 《Java程序设计》第4周学习总结
- java 把数组排成最小的数
- Day01:
- 【Java】反编译工具Java Decompiler
- 浅析java中的关键字:final和static
- java之yield(),sleep(),wait()区别详解-备忘笔记
- JavaWeb开发环境搭建
- Java集合框架:HashMap
- java中this的用法
- 第58课:使用Java和Scala在IDE中开发DataFrame实战学习笔记
- JAVA基础总结(1)
- 你真的会写单例模式吗——Java实现
- Eclipse 反编译插件JadClipse安装
- java自学历程