JAVA中的锁 乐观锁 悲观锁
简单来说:
分为悲观锁和乐观锁
悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自 外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能 真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系 统不会修改数据)。
乐观锁
乐观锁意思是不锁定表的情况下,利用业务的控制来解决并发问题,这样即保证数据的并发可读性又保证保存数据的排他性,保证性能的同时解决了并发带来的脏数据问题。大多是基于数据版本 Version )记录机制实现。
参考资料:
https://www.cnblogs.com/charlas/p/7582034.html
Java中的偏向锁,轻量级锁, 重量级锁解析
https://blog.csdn.net/lengxiao1993/article/details/81568130#synchronized__111