首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >乐观锁定乐观并发控制

乐观锁定乐观并发控制
EN

Stack Overflow用户
提问于 2015-11-13 03:34:04
回答 1查看 742关注 0票数 1

据我所知,“乐观锁”有时指的是“乐观并发控制”,但实际上并没有锁。一个典型的实现是CAS (比较并交换)。所以我想知道,为什么在没有锁定的情况下,这仍然被称为“乐观锁定”?这个术语起源于数据库世界,有没有什么历史原因?

EN

回答 1

Stack Overflow用户

发布于 2016-04-26 13:32:57

正如您正确指出的那样,事务不会在它试图更新的行/持久对象上获得任何锁。但是,正如您可能也知道的那样,乐观锁定基于Versiosing原则工作。Meaning...The数据库-表-记录的版本列(如果您设置了它)将在每次事务更新时递增。此外,任何试图更新特定记录的事务都需要将检索时的记录版本号与更新时的记录版本号进行比较。这就像你有一个名为版本号的键(就像Lock键一样),并试图查看它是否matches..if匹配(同时means..the记录不会被另一个tx更新),然后你就更新了。如果匹配失败(记录由另一个tx..and更新,您的密钥将不再有效)。

因此,版本控制/Opt锁定看起来就像您拥有一个用于虚拟不存在的锁的密钥(称为版本)。当您当前版本的记录不匹配并阻止(意味着锁定)您更新记录时,就可以理解锁的真正含义。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33679777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档