Java 程序中怎么保證多線程的運行安全?


線程的安全性問題體現在:

  • 原子性:一個或者多個操作在 CPU 執行的過程中不被中斷的特性
  • 可見性:一個線程對共享變量的修改,另外一個線程能夠立刻看到
  • 有序性:程序執行的順序按照代碼的先后順序執行
     

導致原因:

  • 緩存導致的可見性問題
  • 線程切換帶來的原子性問題
  • 編譯優化帶來的有序性問題
     

解決辦法:

  • JDK Atomic開頭的原子類、synchronized、LOCK,可以解決原子性問題
  • synchronized、volatile、LOCK,可以解決可見性問題
  • Happens-Before 規則可以解決有序性問題


 



 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM