首页 > 编程知识 正文

悲观锁与乐观锁具有更好的并发性能,java多线程乐观锁实现代码

时间:2023-05-06 11:48:03 阅读:135984 作者:4251

乐观摇滚

乐观锁是一种乐观思想,认为读多写少,遇到同时写入的可能性低,每次去取数据时别人都不修改所以不锁,更新时判断在此期间别人是否去更新了这个数据,开始写的时候把现在的版本号失败时重复阅读-比较-书写。

Java的乐观锁定基本上通过CAS操作实现。 CAS是更新的原子操作,比较当前值和接收值是否相同,如果相同则更新,否则失败。

悲观摇滚

悲观的上锁是一种悲观的思想,认为写入较多,同时写入的可能性较高,因为每次去获取数据时都会被他人修改,所以每次读写数据时都会上锁,在他人试图读写该数据时就会封锁,直到取得上锁为止

Java的悲观锁是同步的,AQS框架下的锁尝试cas乐观锁以获得锁,如果无法获得,则转换为悲观锁,如RetreenLock。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。