1
我讀取像boolean,byte,short,char,int和float這樣的原始數據類型是原子的。像long和double這樣的64位數據類型不是。原始數據類型在java中是原子的
但這是什麼意思?當我有2個線程在一個int變量上遞增和遞減比有時我仍然有競爭條件。例如
例如將數量添加到變量的字節碼。
getfield #2 <Field int amount>
iload_1
iadd
putfield #2 <Field int amount>
原子在這種情況下,每一個單一的操作(getfield,iadd ...),而不是全加法?
給我們您的消息來源。 –
原子意味着改變價值的操作就像交易一樣「立即」發生。這並不意味着你不會有競爭條件,這只是意味着你不會因爲原子能而有競爭條件。 – alfasin
是的,我讀了設計或意外的原子是原子整數?但我不確定多數民衆贊成爲什麼我問清楚,如果「getfield」,「iload_1」是原子 –