執行緒安全性保證---JMM特性詳解
概述
JVM
Java虛擬機器,執行程式的實體是執行緒,每個執行緒建立時JVM都會為其建立一個工作記憶體(稱作棧空間)
JMM
Java記憶體模型,是一種抽象的概念,描述的是一組規範,通過這組規範定義了;程式中各個變數(包括例項欄位,靜態欄位,構成陣列物件的元素)的訪問方式
JMM關於同步的規定
1、執行緒加鎖前,必須讀取主記憶體的最新值到自己的工作記憶體
2、執行緒解鎖前,必須把共享變數的值重新整理回主記憶體
3、加鎖解鎖是同一把鎖
JMM三特性
可見性:主實體記憶體的值只要被修改,其他執行緒馬上會獲取通知的機制
原子性:某個執行緒正在做某個具體業務時,不允許加塞或者被分割,需要整 體完成,要麼同時成功,要麼同時失敗
有序性:經過指令重排,位元組碼指令的順序可能與我們原始碼順序不一致,處理器在指令重排時必須要考慮資料之間的依賴性
<
1 > 單執行緒中最終指令執行結果和程式順序執行結果一致,
2 > 在多執行緒中結果無法預測,所以必須保證執行緒執行的有序性
相關文章
- 保證執行緒在主執行緒執行執行緒
- JMM+多執行緒執行緒
- Java核心知識體系8:Java如何保證執行緒安全性Java執行緒
- Java中如何保證執行緒順序執行Java執行緒
- Java 併發程式設計(四):如何保證物件的執行緒安全性Java程式設計物件執行緒
- 保證執行緒安全的技術執行緒
- 執行緒安全性執行緒
- Java下如何保證多執行緒安全Java執行緒
- 怎樣做才能保證執行緒安全?執行緒
- 詳解多執行緒執行緒
- 多執行緒詳解執行緒
- 多執行緒03:?執行緒傳參詳解執行緒
- 二、執行緒安全性執行緒
- 多執行緒詳解(1)——執行緒基本概念執行緒
- android程式與執行緒詳解二:執行緒Android執行緒
- 詳解Java執行緒安全Java執行緒
- Java多執行緒詳解Java執行緒
- Java 執行緒池詳解Java執行緒
- iOS 多執行緒詳解iOS執行緒
- [轉]Java執行緒詳解Java執行緒
- POSIX執行緒詳解 (轉)執行緒
- Java執行緒池詳解Java執行緒
- iOS 在主執行緒操作UI不能保證安全iOS執行緒UI
- 聊聊保證執行緒安全的10個小技巧執行緒
- 深入解讀HashMap執行緒安全性問題HashMap執行緒
- 02. 執行緒安全性執行緒
- JAVA多執行緒詳解(3)執行緒同步和鎖Java執行緒
- java多執行緒與併發 - 執行緒池詳解Java執行緒
- 解讀Java8中ConcurrentHashMap是如何保證執行緒安全的JavaHashMap執行緒
- 多執行緒之Java記憶體模型(JMM)(一)執行緒Java記憶體模型
- iOS多執行緒:GCD詳解iOS執行緒GC
- mysql後臺執行緒詳解MySql執行緒
- MySQL執行緒狀態詳解MySql執行緒
- Java 多執行緒詳解(一)Java執行緒
- JAVA多執行緒詳解(一)Java執行緒
- Java多執行緒超詳解Java執行緒
- 詳解JAVA多執行緒(一)Java執行緒
- POSIX 執行緒詳解(3) (轉)執行緒