悲观锁与乐观锁
来源:互联网 发布:php 输出执行时间 编辑:程序博客网 时间:2024/05/29 03:29
阿里面试遇到了这个问题,懵逼了,总结一下。
之前回忆了数据库系统中的锁机制,悲观锁与乐观锁其实是更高一级的锁概念,是存在于应用程序中的概念,要与底层数据库产品内部的锁机制区分。
乐观锁指的是在执行更新操作的时候,尽可能相信别人不在更新,于是更新的时候不需要加锁,在更新结束要提交的时候判断是否有别人也更新了。可以通过版本号来实现。可以在数据库中的表 加一列更新号字段,自增,每一次更新先获取一次更新号,然后执行更新,提交前再查看一次更新号,如果相同证明别人没有更新,直接更新,然后再把更新号加1,否则证明别人已经更新了,此时应该取消此次更新。
悲观锁则要求每一次更新都要先取得锁才能更新,更新结束后再释放锁。
乐观锁适用于只读操作多的系统,效率更高。而且不会产生死锁,没有加锁释放锁的开销。
阅读全文
1 0
- 乐观锁与悲观锁
- 乐观锁与悲观锁
- 乐观锁与悲观锁
- 乐观锁与悲观锁
- 乐观锁与悲观锁
- 悲观锁与乐观锁
- 悲观锁与乐观锁
- 乐观锁与悲观锁
- 乐观锁与悲观锁
- 乐观锁与悲观锁
- 乐观锁与悲观锁
- 乐观锁与悲观锁
- 乐观锁与悲观锁
- 悲观锁与乐观锁
- 乐观锁与悲观锁
- 乐观锁与悲观锁
- 乐观锁与悲观锁
- 悲观锁与乐观锁
- 正常的C语言代码用gcc编译失败的原因
- USACO-Section1.3 Prime Cryptarithm [其他]
- 贝叶斯方法
- linux shell grep 常用命令总结
- (个人)AR电子书系统创新实训第四周(1)
- 悲观锁与乐观锁
- 表格的增删改
- dowhile
- 是时候写个自己的网站了!!
- AS报错(一):Gradle project sync failed
- 正则表达式各种验证
- 集成struts2+spring+Hibernate
- BZOJ 1913 计算几何+排列组合 解题报告
- XSS攻击以及PHP预防