码迷,mamicode.com
首页 > 其他好文 > 详细

悲观锁和乐观锁

时间:2019-03-12 14:17:13      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:获得   版本   修改   别人   判断   悲观锁   没有   表锁   应用   

悲观锁

总是架设最坏的请款,每次拿数据都认为别人会修改数据,所以要加锁,别人只能等待,直到我释放锁才能拿到锁;数据库的行锁、表锁、读锁、写锁都是这种方式,java中的synchronized和ReentrantLock也是悲观锁的思想。

乐观锁

总是架设最好的情况,每次拿数据都认为别人不会修改数据,所以不会加锁,但是更新的时候,会判断在此期间有没有人修改过;一般基于版本号机制实现。

使用场景

乐观锁适用于读多写少的情况,即冲突很少发生;如果是多写的情况,应用会不断重试,反而会降低系统性能,这种情况最好用悲观锁,因为等待到锁被释放后,可以立即获得锁进行操作。

悲观锁和乐观锁

标签:获得   版本   修改   别人   判断   悲观锁   没有   表锁   应用   

原文地址:https://www.cnblogs.com/yinchh/p/10516168.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!