Java中的锁定 - 乐观锁与悲观锁

8

我只是在尝试理解乐观锁和悲观锁机制,并在https://en.wikipedia.org/wiki/Lock_(database)上找到了它们的定义。

如果我尝试将这些概念与Java相关联,那么是否可以说使用synchronized关键字始终是悲观的,而使用CAS(AtomicInteger和其他类)始终是乐观的?

1个回答

8

我说同步使用始终是悲观的,而CAS(AtomicInteger和其他类)的使用始终是乐观的,这种说法是正确的吗?

是的,你是正确的。

传统的锁机制,例如在Java中使用同步关键字,被认为是锁定或多线程的悲观技术。

乐观的方法就像古老的说法:“宁可得到原谅,也不要事先获得许可”,这里的“更容易”意味着“更有效率”。CAS是一种乐观技术的例子。StampedLock也支持乐观锁定。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接