1、volatile 保证可见性,不保证原子性
1.png
2、ThreadLocal:
结构:
2.png
3、引用概念:
(1)强引用:不会回收
(2)软引用:内存不足的时候才开始回收,回收后的对象放入软引用队列
(3)弱引用:垃圾回收线程扫描到就回收,但是垃圾回收线程优先级低,回收稍慢,回收后的对象放入弱引用队列
(4)虚引用:待补充
4、ThreadLocal引发的内存泄露:
(2)解决方案:不用的时候remove掉
(3)弱引用不能在value上,因为gc触发就会回收,容易引发空指针异常!
5、ThreadLocal的线程不安全
(1)原因:存放的key对象在所有线程中的都是同一个
(2)例子:key是static的
网友评论