首页 > 其他 > 详细

乐观锁与悲观锁的简单区分

时间:2017-07-17 15:08:52      阅读:285      评论:0      收藏:0      [点我收藏+]

1、锁的出现,是因为并发读写同一个数据的时候,需要进行数据完备性的保护,避免脏读、脏写等。

2、乐观锁,需要在事务中加锁,在读取数据的时候,不必在意数据是否已经被修改了(即允许脏读);但是在写入数据的时候,要检查数据是否已经被修改了(可以通过版本号等机制控制),如果被修改那么就通知事务调用者,事务失败了。

3、悲观锁,需要在事务中加锁,在读取写入数据的时候,都需要考虑数据是否已经被修改,如果被修改了,那么就通知事务调用者,事务被阻塞了,进入等待状态。

4、从性能上看,乐观锁性能会高一些,因为悲观锁要检查更多的数据变动情况,而且还会存在阻塞。

5、从使用场景上看,悲观锁一般用于要求很强的数据一致性的系统,读写都不允许“脏”,乐观锁一般用于一致性稍弱的系统,不允许脏写,但是允许脏读。

 

概念引申:数据库的各种锁,分布式系统的CAP原则。

乐观锁与悲观锁的简单区分

原文:http://www.cnblogs.com/mainjarod/p/7194148.html

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