深入理解Java多執行緒與併發框(第⑦篇)——volatile 關鍵字
概念
把對 volatile變數的單個讀/寫,看成是使用 同一個監視器鎖 對這些單個讀/寫操作做了 同步。 原理:插入記憶體遮蔽指令,禁止一定條件下的重排序。
volatile 是輕量級的同步機制
舉例說明:
public class Assignment { int value = 1; /** * 加法 */ public void assign1() { value = 1; // 單操作 } public void assign2() { value = 2; // 單操作 } }
volatile禁止指令重排序也有一些規則,簡單列舉一下**(重點是存在多操作)**:
- 當第二個操作是voaltile寫時,無論第一個操作是什麼,都不能進行重排序
- 當地一個操作是volatile讀時,不管第二個操作是什麼,都不能進行重排序
- 當第一個操作是volatile寫時,第二個操作是volatile讀時,不能進行重排序
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69964492/viewspace-2683019/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 深入理解Java多執行緒與併發框(第⑧篇)——深入理解:CASJava執行緒
- 深入理解Java多執行緒與併發框(第①篇)——執行緒的狀態Java執行緒
- 深入理解Java多執行緒與併發框(第⑪篇)——執行緒池引數Java執行緒
- 深入理解Java多執行緒與併發框(完結篇)——看完再不懂多執行緒我跪鍵盤Java執行緒
- java多執行緒4:volatile關鍵字Java執行緒
- Java多執行緒(二)volatile關鍵字Java執行緒
- 深入理解Java多執行緒與併發框(第④篇)——重排序、屏障指令、as-if-serial規則Java執行緒排序
- 深入理解Java多執行緒與併發框(第⑩篇)——併發輔助工具類(很好的玩的工具類)Java執行緒
- 【多執行緒與高併發 2】volatile 篇執行緒
- Java多執行緒學習(三)volatile關鍵字Java執行緒
- Java併發專題(三)深入理解volatile關鍵字Java
- 深入理解Java多執行緒與併發框(第③篇)——Java記憶體模型與原子性、可見性、有序性Java執行緒記憶體模型
- Volatile關鍵字與執行緒安全執行緒
- 多執行緒與高併發(五)final關鍵字執行緒
- 多執行緒與高併發(三)synchronized關鍵字執行緒synchronized
- Java併發程式設計序列之執行緒間通訊-synchronized關鍵字-volatile關鍵字Java程式設計執行緒synchronized
- java多執行緒之volatile理解Java執行緒
- 多執行緒知識梳理(8) – volatile 關鍵字執行緒
- 【多執行緒與高併發】- 淺談volatile執行緒
- java併發之volatile關鍵字Java
- Java併發—— 關鍵字volatile解析Java
- 深入彙編指令理解Java關鍵字volatileJava
- 深入理解Java中的volatile關鍵字Java
- java基礎:執行緒與程式;執行緒的分工,協作,互斥;volatile關鍵字Java執行緒
- Java多執行緒乾貨系列—(四)volatile關鍵字| 掘金技術徵文Java執行緒
- 深入理解Java記憶體模型JMM與volatile關鍵字Java記憶體模型
- JAVA-多執行緒(關鍵字:synchronized)Java執行緒synchronized
- Java關鍵字volatile的理解Java
- Java併發程式設計volatile關鍵字Java程式設計
- java併發程式設計:volatile關鍵字Java程式設計
- java併發程式設計——volatile關鍵字Java程式設計
- java多執行緒與併發 - 併發工具類Java執行緒
- java多執行緒與併發 - 執行緒池詳解Java執行緒
- Java多執行緒(四):volatileJava執行緒
- Java多執行緒(六) volatileJava執行緒
- JAVA多執行緒併發Java執行緒
- 多執行緒併發篇——如何停止執行緒執行緒
- Java多執行緒與併發之ThreadLocalJava執行緒thread