本文主要是介绍严格锁和乐观锁,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
严格锁和乐观锁
严格锁
含义:
- 当一个开发者正在编辑某个文件时,其他开发者将无法同时对该文件进行编辑。确保在某一时刻只有一个开发者能够访问和修改该文件
- 严格锁机制通常用于那些需要高度一致性和准确性的场景,例如配置文件、数据库脚本等
示例:
假设我在同一段时间内后台只允许一次将数据提交给数据库,那么可以在redis配置一个10秒后自动过期的值,如果请求访问时redis值存在,则返回False并报错状态码,反之存入数据并设置redis锁
乐观锁
含义:
- 严格锁不同,它基于一个假定:大多数时候,并发修改不会引起冲突。因此,它允许多个开发者同时修改同一文件
- 当一个开发者尝试提交修改时,Git会检查该文件是否自上次获取后已被其他开发者修改。如果该文件在此期间未被其他开发者修改,则提交成功;否则,会提示冲突并需要开发者手动解决
示例:
依旧是一个数据库,存储数据时需要提交版本号,每次提交版本号都+1然后返回给前端,如果两个相同版本号的数据同时提交到数据库那么只能有一个提交成功
区别
他和严格锁的区别本身并不在于锁,而是在于上锁的方式,严格锁相当于在那10秒内门都是不会打开的,但是乐观锁只要你携带的参数正确那么就可以开门
这篇关于严格锁和乐观锁的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!