乐观锁和悲观锁
悲观锁
事务开始到结束一直加锁,以一种大概率会出现有人会争夺资源的心态
乐观锁
在表中增加一个版本号或者时间戳来实现,只有到提交数据的时候才通过一种机制检验数据是否冲突
举例
| id | type | number |
|---|---|---|
| 001 | 菜 | 1 |
| 002 | 肉 | 2 |
| 悲观锁:线程a,b都想下单菜,假如a获得了锁,b就不能访问,等到a完成事务释放锁之后b才能获得 | ||
| 乐观锁: | ||
| id | type | number |
| ---- | ---- | ---- |
| 001 | 菜 | 1 |
| 002 | 肉 | 2 |
| 增加一个版本号.当a购买时会拿着id=001,和version=0去购买,完成 | ||
| b再去购买拿着id=001,和version=0去购买发现版本号对不上,无法进行 |
浙公网安备 33010602011771号