首页 > 其他 > 详细

乐观锁和悲观锁

时间:2017-07-05 13:02:30      阅读:258      评论:0      收藏:0      [点我收藏+]

悲观锁:修改数据之前先对该记录加锁,该期间别的线程无法修改该记录,等提交之后其他线程才可以获得锁,例如:数据库行锁,表锁,写锁,都是悲观锁

乐观锁:每次去获取数据不会加锁,但是更新记录的时候会判断一下当前记录是否和自己读取的是否一致,不一致重新读取,再更新,大都是通过版本号判断当前记录和自己读取的记录是否被修改,像数据库如果提供类似于write_condition机制的其实都是提供的乐观锁

 

锁选择:

  乐观锁适用于写比较少的情况下,即冲突真的很少发生的时候,这样可以省去了锁的开销,加大了系统的整个吞吐量。但如果经常产生冲突,上层应用会不断的进行retry,这样反倒是降低了性能,所以这种情况下用悲观锁就比较合适。

乐观锁和悲观锁

原文:http://www.cnblogs.com/wangf111/p/7120511.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!