乐观锁

在最近的springboot的学习中,了解到了一种java用于处理并发问题的一种机制——乐观锁。接下来我会简单的介绍一下它的原理。

首先我们为什么需要乐观锁,举一个简单的例子,在国庆节的时候,我们打算出门旅行,这时候我想去北京的故宫博物院,恰逢放假,买票的人也不少,我们选择线上购票,由于供不应求,数据库中的票很快就被抢的就剩下了一张,这个时候,有100个人发起这个购票请求,如若都去响应成功显然是不符合常理的,这个时候,我们可以对票的数量上一把乐观锁。

乐观锁引入了一个新的字段实现了对数据的操作保一性——版本号。当执行对于票的剩余量进行请求时,每请求都会修改相应的版本号,例如A申请购票把版本加一变成了1,B也申请把版本变成了2,当A的操作试图对数据库中的数据修改(购票请求)时,因为版本不匹配而失败,所以B就卖到了仅剩下的最后一张门票。

posted @ 2023-10-08 20:22  杳无音讯  阅读(14)  评论(0编辑  收藏  举报