volatile && ThreadLocal

1、volatile 保证可见性,不保证原子性


1.png

2、ThreadLocal:
结构:


2.png

3、引用概念:
(1)强引用:不会回收

(2)软引用:内存不足的时候才开始回收,回收后的对象放入软引用队列
(3)弱引用:垃圾回收线程扫描到就回收,但是垃圾回收线程优先级低,回收稍慢,回收后的对象放入弱引用队列
(4)虚引用:待补充
4、ThreadLocal引发的内存泄露:

(1)
3.png

(2)解决方案:不用的时候remove掉
(3)弱引用不能在value上,因为gc触发就会回收,容易引发空指针异常!
5、ThreadLocal的线程不安全
(1)原因:存放的key对象在所有线程中的都是同一个
(2)例子:key是static的
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容