您的位置:首页 > 其它

线程-ThreadLocal-线程局部变量

2017-03-18 12:18 225 查看
ThreadLocal的概念:

它与volatile完全相反,它是为了不可见性。

它会给每一个访问它的线程创建独立副本,让线程之间不产生冲突,从而保证线程安全。

ThreadLocal与synchronized不同,ThreadLocal完全不提供所锁,它是以空间换时间的为出发点而synchronized是以时间换空间为出发点,

一个速度快但占用空间大,一个是节省空间但处理速度慢。

当并发不高时建议使用加锁的方式,并发高时用ThreadLocal.

编写格式:

public  static ThreadLocal<String> tl = new ThreadLocal<String>();

实现原理:

每个线程操作ThreadLocal.set()方法时,都是将当前的线程和设置的值存入一个map中,当操作get()方法时根据当前线程为key找到对应的值,

通过这种方法保证数据不冲突。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: