參考文章:
當我們說線程安全時,到底在說什么
http://www.jasongj.com/java/thread_safe/
多線程不安全的原因和基本的解決方案
https://my.oschina.net/u/2930289/blog/1831411
補充:
- 對volatile變量執行寫操作時,會在寫操作后加入一條
store
屏障指令,讓主內存中的變量及時更新,寫完直接刷新到主內存中 - 對volatile變量執行讀操作時,會在讀操作前加入一條
load
屏障指令,更新工作內存中的變量,讀之前將主內存的最新變量更新到工作內存中
歡迎關注我的技術公眾號,一起成長!