锁定 java - 乐观与悲观

Locking in java - Optimistic vs Pessimistic

我只是想了解乐观和悲观锁定机制,并在 https://en.wikipedia.org/wiki/Lock_(database)

上看到了它们的定义

如果我尝试将这些概念与 java 而不是数据库联系起来,我说同步用法总是悲观的并且 CAS(AtomicInteger 和其他 类) 使用总是乐观的?

Am I right in saying that a synchronized usage is always pessimistic and a CAS (AtomicInteger and other classes) usage is always optimistic ?

是的,你是对的。

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

乐观的做法正如那句老话,“得饶不如得准”,这里的“容易”是指“更有效率”。 CAS 是 乐观 技术的一个例子。 StampedLock 还支持乐观锁定。