喵喵時(shí)光機(jī)
2019-08-27 10:33:17
Java中的哪些操作被認(rèn)為是原子的?Java中的哪些操作被認(rèn)為是原子的?
3 回答

手掌心
TA貢獻(xiàn)1942條經(jīng)驗(yàn) 獲得超3個(gè)贊
除long和double之外的所有原始類(lèi)型的賦值
所有參考作業(yè)
所有volatile變量的賦值
java.concurrent.Atomic * classes的所有操作
也許還有更多??纯?a >jls。
正如評(píng)論中所指出的,原子性并不意味著可見(jiàn)性。因此,雖然保證另一個(gè)線(xiàn)程不會(huì)看到部分寫(xiě)入int
,但它可能永遠(yuǎn)不會(huì)看到新值。
long和double上的操作也是普通的64位CPU 原子,盡管不能保證。另請(qǐng)參閱此功能請(qǐng)求。

海綿寶寶撒
TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊
在Java中,32位或更小數(shù)量的讀寫(xiě)保證是原子的。
原子,我們的意思是每個(gè)動(dòng)作都在一個(gè)步驟中發(fā)生,不能被打斷。因此,當(dāng)我們有多線(xiàn)程應(yīng)用程序時(shí),讀寫(xiě)操作是線(xiàn)程安全的,不需要進(jìn)行同步。
例如,以下代碼是線(xiàn)程安全的:
public class ThreadSafe { private int x; public void setX(int x) { this.x = x; } }
添加回答
舉報(bào)
0/150
提交
取消