package others;
import java.util.concurrent.atomic.AtomicInteger;
/**
* CAS:比较并交换
* CAS是一组原子操作不会被外部打断
* @author
*
*/
public class CAS {
//库存
private static AtomicInteger stock = new AtomicInteger(5);
public static void main(String[] args) {
for(int i=0; i<5; i++) {
new Thread(()->{
//模拟网络延时
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Integer left = stock.decrementAndGet();//
if(left < 1) {
System.out.println("抢完了..");
return;
}
System.out.println(Thread.currentThread().getName()+"抢了一件商品"+"-->还剩"+left);
}).start();
}
}
}
多线程 CAS
最新推荐文章于 2023-11-10 15:55:24 发布