第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

java:在一個(gè)變量上使用 volatile VS 每個(gè)變量

java:在一個(gè)變量上使用 volatile VS 每個(gè)變量

拉丁的傳說 2023-05-24 14:50:55
以下問題:volatile Object A;volatile Object B;volatile Object C;Thread1:reads and writes to A-C Thread2:the same as Thread1所以我的問題是:如果我這樣做會(huì)更好嗎:Object A;Object B;Object C;volatile boolean memoryBarrier=true;Thread1:Before read of A-C: read memoryBarrierAfter some write of A-C: write memoryBarrier=true;Thread2:the same as Thread1:Before read of A-C: read memoryBarrierAfter some write of A-C: write memoryBarrier=true;只有一個(gè) volatile 變量更好,還是我應(yīng)該讓我可以在 valatile 上寫/讀的每個(gè)變量?這樣可以嗎,如果我每次都在我的第二個(gè)解決方案中寫入我的 memoryBarrier?,以觸發(fā)寫入 - 讀取 - 在 java 中的關(guān)系語義之前發(fā)生?我猜它沒有被優(yōu)化掉?所以總結(jié):我的解決方案 1 和 2 在語義上是否相等?解決方案2更好嗎?我是否可以始終將相同的值寫入 volatile 變量以獲得讀/寫 volatile happensbefore-relationship?
查看完整描述

1 回答

?
aluckdog

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個(gè)贊

該示例非常簡(jiǎn)單,因此您可能看不到性能方面的太大差異。

我的直覺告訴我,在進(jìn)行 3 次非易失性內(nèi)存訪問后進(jìn)行一次volatile訪問可能比volatile連續(xù)發(fā)出 3 次訪問要好。

這三個(gè)volatile內(nèi)存訪問是完全有序的(A happens-before B happens-before C)并限制編譯器和處理器執(zhí)行某些優(yōu)化。非易失性版本在 A、B 和 C 之間建立無先行關(guān)系,因此為編譯器和處理器提供更多自由來利用內(nèi)存級(jí)并行/指令級(jí)并行。


查看完整回答
反對(duì) 回復(fù) 2023-05-24
  • 1 回答
  • 0 關(guān)注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)