AtomicInteger:使用非阻塞算法(無鎖定無等待)實現(xiàn)并發(fā)控制,相比synchronized和Lock(阻塞算法)實現(xiàn)叹侄,更加高效
比較并交換 (CAS)
包含三個操作數(shù) —— 內(nèi)存位置(V)、預(yù)期原值(A)和新值(B)檐晕。如果內(nèi)存位置的值與預(yù)期原值相匹配侨颈,那么處理器會自動將該位置值更新為新值雀久。否則署穗,處理器不做任何操作寥裂。無論哪種情況,它都會在 CAS 指令之前返回該位置的值案疲。(在 CAS 的一些特殊情況下將僅返回 CAS 是否成功抚恒,而不提取當(dāng)前值。)CAS 有效地說明了“我認為位置 V 應(yīng)該包含值 A络拌;如果包含該值,則將 B 放到這個位置回溺;否則春贸,不要更改該位置,只告訴我這個位置現(xiàn)在的值即可遗遵∑妓。”