DeathWhispers

死磕Java并发:J.U.C之读写锁:ReentrantReadWriteLock

https://www.iocoder.cn/JUC/sike/ReentrantReadWriteLock/ 1. 简介 重入锁 ReentrantLock 是排他锁,排他锁在同一时刻仅有一个线程可以进行访问,但是在大多数场景下,大部分时间都是提供读服务,而写服务占有的时间较少。然而,读服务不存在数据竞争问题,如果一个线程在读时禁止其他线程读势必会导致性能降低。所以就提供了读写锁。 ...

死磕Java并发:J.U.C之AQS:同步状态的获取与释放

此篇博客所有源码均来自JDK 1.8 在前面提到过,AQS 是构建 Java 同步组件的基础,我们期待它能够成为实现大部分同步需求的基础。 AQS 的设计模式采用的模板方法模式,子类通过继承的方式,实现它的抽象方法来管理同步状态。对于子类而言,它并没有太多的活要做,AQS 已经提供了大量的模板方法来实现同步,主要是分为三类: 独占式获取和释放同步状态 共享式获取和释放同步状态 查询...