BR 技术头条 技术链接、资讯与社区分享流
bl blog.csdn.net / 2015-11-02 21:31 / by @令仔很忙

【hibernate集锦】---悲观锁和乐观锁

赞过的人

@技术头条@令仔很忙

讨论 · 1 条

@技术头条 2015-11-02 23:43

Hibernate 支持两种锁机制来保证数据访问的排他性:
1. 悲观锁(Pessimistic Locking);
2. 乐观锁(Optimistic Locking);

悲观锁

悲观锁,假定当前事务操纵数据资源时,肯定还会有其它事务同时访问该数据资源,为了避免当前事务的操作受到
干扰,先锁定资源。
如上所述,悲观锁对于数据被外界修改保持极端保守态度,当执行一条查询时就要将整个过程中把数据锁住,只
要事务不释放(提交/回滚),那么其他任何用户都不能查看或修改。这一过程,通过在应用程序中显示地为数据资
源加锁和数据库机制相结合实现的。

乐观锁

乐观锁,假定当前事务操纵数据资源时,不会有其它事务同时访问该数据资源,因此完全依靠数据库的隔离级别来
自动管理锁的工作。
乐观锁其实不是锁,它只是一种检测冲突的手段。相对悲观锁而言,乐观锁机制采取了宽松的加锁机制,大多是
基于数据版本记录机制或时间戳机制来避免可能出现的并发问题的。

发表评论