您好,登錄后才能下訂單哦!
CAS:比較并交換
借助已經(jīng)實現(xiàn)的類AtomicInteger
內(nèi)部原理:把當(dāng)前的值和原來的值(序列號、地址等)作比較,如果相等則覆蓋
public class my {
//借助已經(jīng)實現(xiàn)的類AtomicInteger
//庫存
private static AtomicInteger stock=new AtomicInteger(5); //假設(shè)庫存有五件商品
public static void main(String[]args) throws InterruptedException
{
for(int i=0;i<5;i++)
{
new Thread(()->{
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Integer left=stock.decrementAndGet(); //相減和獲取
//內(nèi)部已實現(xiàn)CAS原子操作
if(left<1)
{
System.out.println("搶完了");
return;
}
System.out.println(Thread.currentThread().getName()+"搶了一件商品");
System.out.println("還剩下:"+left);
}).start();
}
}
}
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。