ThinkSSL🔒 一键申购 5分钟快速签发 30天无理由退款 购买更放心 广告
## 悲观锁与乐观锁 在日常的开发中,悲观锁和乐观锁应该是见得最多,用得最多的锁,比如最常见的`synchronized`和`ReentrantLock`是悲观锁,并发包中的原子类和ConcurrentHashMap则用了乐观锁。锁的实现并不复杂,关键是搞懂这两种锁的思想,这样才能在合适的地方使用合适的锁。 ### **使用场景** 在**读多写少的场景**下,更新时很少发生冲突,**使用乐观锁**,减少了上锁和释放锁的开销,可以有效地提升系统的性能。 相反,在**写多读少的场景**下,如果使用乐观锁会导致更新时经常产生冲突,然后线程会循环重试,这样会增大CPU的消耗。在这种情况下,**建议可以使用悲观锁**。 ## 参考资料 作者:java技术爱好者 链接:https://zhuanlan.zhihu.com/p/320494119 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。