悲观锁和乐观锁是并发场景下解决冲突问题的两种思想。
悲观锁,在每次读取数据的时候总是认为别的事务会更改数据,所以会加锁,导致其他事务想访问当前数据时,会阻塞等待。并发性能较差
乐观锁
每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号机制和CAS算法实现。
当竞争激烈(出现并发冲突的概率大)时,悲观锁更有优势,因为乐观锁在执行更新时频繁失败,需要不断重试,浪费CPU资源。
悲观锁与乐观锁
最新推荐文章于 2024-10-14 20:53:59 发布