悲观锁和乐观锁定义是什么?

如题所述

悲观锁和乐观锁定义:

乐观锁:乐观锁在操作数据时非常乐观,认为别人不会同时修改数据。因此乐观锁不会上锁,只是在执行更新的时候判断一下在此期间别人是否修改了数据:如果别人修改了数据则放弃操作,否则执行操作。

悲观锁:悲观锁在操作数据时比较悲观,认为别人会同时修改数据。因此操作数据时直接把数据锁住,直到操作完成后才会释放锁;上锁期间其他人不能修改数据。

悲观锁实现方式

悲观锁的实现,往往依靠数据库提供的锁机制。在数据库中,悲观锁的流程如下:

1.在对记录进行修改之前,先尝试为该记录加上排它锁(exclusive locking)。

2.如果加锁失败,说明该记录正在被修改,那么当前查询可能要等待或者抛出异常。具体响应方式由开发者根据实际需要决定。

3.如果成功加锁,那么就可以对记录做修改,事务完成后就会解锁了。

4.期间如果有其他对该记录做修改或加排它锁的操作,都会等待解锁或直接抛出异常。

温馨提示:答案为网友推荐,仅供参考
相似回答