小李接到一个小需求,开发一个秒杀功能,功能很简单,我一共有五个库存,某一时间开启秒杀,购买一次,库存减一,直至库存为零。小李一顿需求分析,觉得很简单,然后就开始一顿CV,完事,功能上线,然后就发现了问题。
public class Demo {
//库存
private static Long a=5L;
//购买
public static void buy(){
if (a > 0) {
a-=1;
System.out.println(Thread.currentThread().getName()+"秒杀成功,商品剩余:"+a);
}else {
System.out.println(Thread.currentThread().getName()+"秒杀失败,商品库存不足");
}
}
//开启秒杀
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
new Thread(Demo::buy).start();
}
}
}