![](/img/trans.png)
[英]happens-before relationship does not work as expected using "volatile"
[英]Why we must use same volatile field to establish happens-before relationship using the volatile keyword?
“易失性規則”說“寫入易失性字段發生在每次后續讀取同一字段之前”,我知道這意味着如果我們寫入易失性線程並在另一個線程中讀取另一個易失性,那么有NO 發生在兩個動作之間的關系之前。
我的問題是為什么我們必須使用“相同字段”?
那是它應該如何工作不是嗎? 我們想要的只是線程之間共享的數據應該是一致的,那么為什么我們要在不同的變量之間有happens-before關系呢? 在同一字段上的關系之前發生是有意義的,因為如果我們不這樣做,則可能會導致數據競爭。 不是嗎?
因為您要求的內容被synchronized
覆蓋了:通過同步方法寫入對象的任何字段發生在隨后通過同步方法讀取同一對象的任何其他字段之前。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.