1、volatile 保證可見性,不保證原子性
1.png
2、ThreadLocal:
結構:
2.png
3、引用概念:
(1)強引用:不會回收
(2)軟引用:內存不足的時候才開始回收,回收后的對象放入軟引用隊列
(3)弱引用:垃圾回收線程掃描到就回收,但是垃圾回收線程優先級低,回收稍慢,回收后的對象放入弱引用隊列
(4)虛引用:待補充
4、ThreadLocal引發的內存泄露:
3.png
(2)解決方案:不用的時候remove掉
(3)弱引用不能在value上,因為gc觸發就會回收,容易引發空指針異常!
5、ThreadLocal的線程不安全
(1)原因:存放的key對象在所有線程中的都是同一個
(2)例子:key是static的