1、场景
电商场景下,有个程序的工作流程
1、读取商品信息(商品信息中包含库存)
2、用户下单购买
3、更新商品信息(更新库存信息)
2、操作
现在有多个用户同时操作,多个线程同时并发去执行上面的3个步骤
用户A获取到库存100件
用户B获取到库存100件
然后两个用户同时提交订单,但是总有一个线程是先到的,如果线程A先到,就会先将库存 -1 设置为99件。然后线程B再次将库存设置为 99 件,此时结果已经错了。
3、我们期待的结果
线程A先将库存设置为99件,线程B在99件的基础上 -1 设置为 98 件