文章詳情頁
java內(nèi)存模型的happens-before語義順序問題
瀏覽:114日期:2024-01-14 18:53:39
問題描述
注意,兩個操作之間具有 happens-before 關(guān)系,并不意味著前一個操作必須要在后一個操作之前執(zhí)行!happens-before 僅僅要求前一個操作(執(zhí)行的結(jié)果)對后 一個操作可見,且前一個操作按順序排在第二個操作之前(the first is visible to and ordered before the second)。happens- before 的定義很微妙,后文會具 體說明 happens-before 為什么要這么定義。
——引用自《深入理解JAVA內(nèi)存模型》
這本書后邊有一個重排序的例子,說明沒有依賴關(guān)系的兩個語句可以重排,所以“并不意味著前一個操作必須要在后一個操作之前執(zhí)行”。那“且前一個操作按順序排在第二個操作之前”這句話的含義又是什么呢
黑色斜體兩段字所要表明的意思區(qū)別究竟在哪,感覺這兩句話是矛盾的呢?能否舉例說明一下
問題解答
回答1:可以反著理解一下,hf是指物理上按照順序的兩條指令第一個對第二個可見,但是不是一定第一條先執(zhí)行的呢,不一定,因為可能發(fā)生重拍,順序上第一條不一定先執(zhí)行
標(biāo)簽:
java
相關(guān)文章:
1. 為什么我ping不通我的docker容器呢???2. 關(guān)于docker下的nginx壓力測試3. debian - docker依賴的aufs-tools源碼哪里可以找到啊?4. angular.js - angular內(nèi)容過長展開收起效果5. javascript - webpack熱加載配置不生效6. docker start -a dockername 老是卡住,什么情況?7. javascript - js代碼獲取驗證碼倒計時問題8. dockerfile - [docker build image失敗- npm install]9. 主從備份 - 跪求mysql 高可用主從方案10. java - instance method中 static后的<K>是什么意思?
排行榜

熱門標(biāo)簽