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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

happens-before規(guī)則和初始化安全規(guī)則之間的關(guān)系

happens-before規(guī)則和初始化安全規(guī)則之間的關(guān)系

牛魔王的故事 2023-09-27 15:23:37
我正在閱讀《Java 并發(fā)實踐》一書。在閱讀有關(guān) JMM 的章節(jié)時,它說:JMM 為程序中的所有操作定義了一個名為“happens-before”的部分排序。為了保證執(zhí)行動作B的線程可以看到動作A的結(jié)果(無論A和B是否發(fā)生在不同的線程中), A和B之間必須存在happens-before關(guān)系。但是,我無法使用任何“發(fā)生前”規(guī)則來派生“初始化安全”規(guī)則:初始化安全保證對于正確構(gòu)造的對象,所有線程都將看到構(gòu)造函數(shù)設(shè)置的最終字段的正確值,無論對象如何發(fā)布。我們可以使用happens-before規(guī)則來推導(dǎo)“初始化安全”規(guī)則,還是這兩個概念只是同一級別的抽象?
查看完整描述

1 回答

?
30秒到達(dá)戰(zhàn)場

TA貢獻(xiàn)1828條經(jīng)驗 獲得超6個贊

“初始化安全規(guī)則”是一種特殊的規(guī)則,不能從其他的happens-before關(guān)系中推導(dǎo)出來,也不能與其他的happens-before關(guān)系結(jié)合起來派生出更多的規(guī)則。

該規(guī)則在JLS §17.5 最終字段語義中指定:

final字段還允許程序員無需同步即可實現(xiàn)線程安全的不可變對象。線程安全的不可變對象被所有線程視為不可變,即使使用數(shù)據(jù)爭用在線程之間傳遞對不可變對象的引用也是如此。這可以提供安全保證,防止錯誤或惡意代碼濫用不可變類。final必須正確使用字段以保證不變性。

該章太長,無法完整引用,但我想強(qiáng)調(diào)這一具體聲明:

happens-before排序不會與其他happens-before排序傳遞地關(guān)閉。

因此,除了其他先發(fā)生關(guān)系之外,還存在“初始化安全規(guī)則”,以幫助構(gòu)建不可變對象。


查看完整回答
反對 回復(fù) 2023-09-27
  • 1 回答
  • 0 關(guān)注
  • 92 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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