随笔分类 - java锁
摘要:本文摘自,如有侵权,请联系我!!! 这是《死磕Java并发编程》系列的第7篇文章 我们在一起来看看 读写锁 ReentrantReadWriteLock 的源码分析,基于Java8。 阅读建议:由于Java并发包中的锁都是基于AQS实现的,本篇的读写锁也不例外。如果你还不了解的话,阅读起来会比较吃力
阅读全文
摘要:何谓悲观锁与乐观锁 乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。 悲观锁 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这
阅读全文
摘要:ReentrantLock在并发情况下只允许单个线程执行受保护的代码,而在大部分应用中都是读多写少,所以,如果使用ReentrantLock实现这种对共享数据的并发访问控制,将严重影响整体的性能。ReentrantReadWriteLock中提供的读取锁(ReadLock)可以实现并发访问下的多读,
阅读全文
摘要:之前笔者分析了synchronized的偏向锁源码,我们今天继续来看synchronized的轻量级锁逻辑。关于轻量级锁,网上有很多说法都是轻量级锁在发生竞争时会进行自旋,但是经过笔者对源码的学习,并没有发现轻量级锁的自旋逻辑。笔者甚至去jdk6和jdk15中都进行了一番搜索,发现也不存在自旋的逻辑
阅读全文