Java記憶體模型FAQ(六)沒有正確同步的含義是什麼?
沒有正確同步的程式碼對於不同的人來說可能會有不同的理解。在Java記憶體模型這個語義環境下,我們談到“沒有正確同步”,我們的意思是:
-
一個執行緒中有一個對變數的寫操作,
-
另外一個執行緒對同一個變數有讀操作,
-
而且寫操作和讀操作沒有通過同步來保證順序。
當這些規則被違反的時候,我們就說在這個變數上有一個“資料競爭”(data race)。一個有資料競爭的程式就是一個沒有正確同步的程式。
《Java記憶體模型FAQ(一) 什麼是記憶體模型》
《Java記憶體模型FAQ(二) 其他語言,像C++,也有記憶體模型嗎?》
《Java記憶體模型FAQ(三)JSR133是什麼?》
《Java記憶體模型FAQ(四)重排序意味著什麼?》
《Java記憶體模型FAQ(五)舊的記憶體模型有什麼問題?》
原文
What do you mean by “incorrectly synchronized”?
Incorrectly synchronized code can mean different things to different people. When we talk about incorrectly synchronized code in the context of the Java Memory Model, we mean any code where
-
there is a write of a variable by one thread,
-
there is a read of the same variable by another thread and
-
the write and read are not ordered by synchronization
When these rules are violated, we say we have a data race on that variable. A program with a data race is an incorrectly synchronized program.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70010294/viewspace-2845385/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java記憶體模型FAQ(一) 什麼是記憶體模型Java記憶體模型
- Java記憶體模型FAQ(五)舊的記憶體模型有什麼問題?Java記憶體模型
- Java記憶體模型FAQ(七)同步會幹些什麼呢Java記憶體模型
- Java記憶體模型FAQ(十)volatile是幹什麼用的Java記憶體模型
- Java記憶體模型FAQ(三)JSR133是什麼?Java記憶體模型JS
- 什麼是Java記憶體模型?Java記憶體模型
- 什麼是Java記憶體模型Java記憶體模型
- Java記憶體模型是什麼,為什麼要有Java記憶體模型,Java記憶體模型解決了什麼問題?Java記憶體模型
- Java記憶體模型FAQ(四)重排序意味著什麼?Java記憶體模型排序
- 什麼是Java記憶體模型(JMM)中的主記憶體和本地記憶體?Java記憶體模型
- Java記憶體模型FAQ(九)在新的Java記憶體模型中,final欄位是如何工作的Java記憶體模型
- 同步和Java記憶體模型Java記憶體模型
- Java記憶體模型FAQ(二) 其他語言,像C++,也有記憶體模型嗎?Java記憶體模型C++
- 詳解JVM中的記憶體模型是什麼?JVM記憶體模型
- 面試官:為什麼需要Java記憶體模型?面試Java記憶體模型
- 什麼是記憶體記憶體
- Web含義是什麼Web
- linux記憶體的真正含義Linux記憶體
- 正確釋放Vector的記憶體記憶體
- 深入理解Java記憶體模型(六)——finalJava記憶體模型
- Java的記憶體模型Java記憶體模型
- 你瞭解Java記憶體模型麼(Java7、8、9記憶體模型的區別)Java記憶體模型
- 記憶體科普:DIMM是指什麼,和DDR有什麼區別?記憶體
- 記憶體中,cache與buffer的含義記憶體
- Java 記憶體模型Java記憶體模型
- Java記憶體模型Java記憶體模型
- JVM記憶體結構、Java記憶體模型和Java物件模型JVM記憶體Java模型物件
- Java記憶體模型(MESI、記憶體屏障、volatile和鎖及final記憶體語義)Java記憶體模型
- 顯示卡的視訊記憶體是什麼?記憶體
- 再有人問你Java記憶體模型是什麼,就把這篇文章發給他。Java記憶體模型
- 再有人問你Java記憶體模型是什麼,就把這篇文章發給他Java記憶體模型
- Java記憶體模型FAQ(八)Final欄位如何改變它們的值Java記憶體模型
- 什麼是元宇宙系統開發?它的價值有什麼含義?元宇宙
- JVM上的併發和Java記憶體模型之同步塊筆記JVMJava記憶體模型筆記
- Java記憶體區域和記憶體模型Java記憶體模型
- JMM Java 記憶體模型Java記憶體模型
- Java記憶體模型-(1)Java記憶體模型
- Java物件記憶體模型Java物件記憶體模型