當前位置:編程學習大全網 - 編程軟體 - java 程序中怎麽保證多線程的運行安全?

java 程序中怎麽保證多線程的運行安全?

並發編程三要素(線程的安全性問題體現在):

原子性:原子,即壹個不可再被分割的顆粒。原子性指的是壹個或多個操作要麽 全部執行成功要麽全部執行失敗。

可見性:壹個線程對***享變量的修改,另壹個線程能夠立刻看到。 (synchronized,volatile)

有序性:程序執行的順序按照代碼的先後順序執行。(處理器可能會對指令進行 重排序)

出現線程安全問題的原因:

線程切換帶來的原子性問題

緩存導致的可見性問題

編譯優化帶來的有序性問題

解決辦法:

JDK Atomic開頭的原子類、synchronized、LOCK,可以解決原子性問題

synchronized、volatile、LOCK,可以解決可見性問題

Happens-Before 規則可以解決有序性問題

  • 上一篇:初中生女生學什麽技術好
  • 下一篇:河北華勝鑫海科技有限公司怎麽樣?
  • copyright 2024編程學習大全網