Java中的闪光点:ThreadLocal是线程Thead的局部变量,可替代同步机制的设计,值得学习和研究
2016-01-22 09:54
337 查看
线程局部变量ThreadLocal,是Java支持的一种线程安全机制,目的是解决多线程的并发问题。
具体来讲,就是多个线程访问该实例对象的变量时,该实例对象将其存储为键值对的形式,保证各个线程(键)分别对应一份该变量值(值),从而保证多线程变量值得安全访问。
ThreadLocal与同步机制比较
同步机制:用锁机制保证同一时间只有一个线程访问变量(用时间换空间),变量是多线程共享的,设计时要缜密分析什么时候读写?什么时候锁定?什么时候释放?
ThreadLocal:提供每个线程一个独立的变量副本(用空间换时间)。
TheadLocal的四个接口方法:
1.public void set(Object value) 设置当前线程局部变量
2.public Object get() 获取当前线程局部变量
3.public void remove() 删除当前线程局部变量
4.protected Object InitialValue() 初始化线程局部变量初始值,默认返回null,可重写改变返回值
转:http://blog.csdn.net/qjyong/article/details/2158097
具体来讲,就是多个线程访问该实例对象的变量时,该实例对象将其存储为键值对的形式,保证各个线程(键)分别对应一份该变量值(值),从而保证多线程变量值得安全访问。
ThreadLocal与同步机制比较
同步机制:用锁机制保证同一时间只有一个线程访问变量(用时间换空间),变量是多线程共享的,设计时要缜密分析什么时候读写?什么时候锁定?什么时候释放?
ThreadLocal:提供每个线程一个独立的变量副本(用空间换时间)。
TheadLocal的四个接口方法:
1.public void set(Object value) 设置当前线程局部变量
2.public Object get() 获取当前线程局部变量
3.public void remove() 删除当前线程局部变量
4.protected Object InitialValue() 初始化线程局部变量初始值,默认返回null,可重写改变返回值
转:http://blog.csdn.net/qjyong/article/details/2158097
相关文章推荐
- JSON 字符串 与 java 对象的转换
- Eclipse安装Freemarker Editor插件
- spring容器外的组件获得应用上下文的方法
- Spring框架的IoC和AOP
- 面向对象高级特性===Java抽象类的概念和使用
- 【转载】java 排序算法
- 【转载】JAVA序列化/反序列化与单例
- Java:单例模式的七种写法
- Java 正则表达式
- Java 中的 static
- struts1.* 核心配置文件struts-config.xml详解
- Java日期格式处理
- java.util.date与java.sql.date转换
- Java中的static关键字解析
- Java序列化深入剖析和总结(精华)
- Eclipse 编写ANDROID 时在XML文件下无法自动生成R.java 成员变量id
- 【spring mvc】Spring MVC 的参数解析器ArgumentResolver阐述
- java注解开发
- svn 在64位win7下报Failed to load JavaHL Library解决办法
- 2016蓝桥杯假期任务之《振兴中华》