我只是想了解乐观和悲观的锁定机制,并在https://en.wikipedia.org/wiki/Lock_(database)中找到了它们的定义
如果我尝试将概念与java而不是数据库联系起来,我是否正确地说同步使用始终是悲观的并且CAS(AtomicInteger和其他类)的使用始终是乐观的?
我是说同步用法总是悲观而CAS(
AtomicInteger和其他类)用法总是乐观吗?
是的,你是对的。
传统的锁定机制(例如在Java中使用synced关键字)被称为锁定或多线程的悲观技术。
乐观的方法就像老话所说:“获得宽容比允许容易”,这里的“轻松”意味着“更有效率”。CAS是乐观技术的一个例子。StampedLock还支持乐观锁定。