乐观锁,相信冲突是低概率事件,那么在commit时才进行检查。
做法:
1) 取数据时同时获取最后更新的时间戳或版本号。
2) 再更新前,用锁记录的方式获取当前时间戳或版本号。
3)若无法锁定,表示正被修改,放弃操作,要求用户重新查询。
4)若可以锁定,比较时间戳或版本号。不同则按 3)进行操作,相同则更新记录,同时修改时间戳或版本号
悲观锁, 认为冲突很可能发生,不希望自己的修改作废。那么在取数据时加锁。
做法
1) 取数据时,锁记录的方式获取修改标志,若可以修改则设定为修改中。
2)修改数据后,或放弃修改后,更新修改标志为可以修改。
---------------------------------------------------------------------------------------------------------------------------------------------------------
如果想跟深入了解个人推荐链接
http://www.cnblogs.com/zhenyulu/articles/208799.html
这位博主写的比较详细,个人学习借鉴
本文深入探讨了乐观锁和悲观锁两种并发控制机制的工作原理。乐观锁假设冲突较少,在提交时检查版本号或时间戳;悲观锁则假设冲突频繁,在获取数据时即加锁。文章通过具体步骤说明了两种锁的实现方式。

被折叠的 条评论
为什么被折叠?



