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

乐观锁和悲观锁

时间:2017-07-05 13:35:15      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:无法   try   悲观锁   上层   系统   适用于   乐观锁和悲观锁   通过   获取   

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

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

 

锁选择:

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

乐观锁和悲观锁

标签:无法   try   悲观锁   上层   系统   适用于   乐观锁和悲观锁   通过   获取   

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

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