ReentrantReadWriteLock 发表于 2025-10-24 分类于 Java , JUC , JUC原理 将锁分为 读锁 与 写锁 旨在在读多写少的场景下提升并发性能。 实现读读共享、读写互斥、写写互斥。 注意事项 1.读锁不支持条件变量 2.重入时不能升级锁(有读锁不能获取写锁, 否则会导致永久等待) 3.重入时可以降级锁(有写锁时, 可以获得读锁) Rwl.readLock.unlock() //必须先把读锁释放掉才能拿写锁 Rwl.writeLock.lock() Try{ } finally{ //Rwl.readLock.lock() 可以有选择地降级为读锁, 然后释放写锁 Rwl.writeLock.unlock() } 应用 略 原理 读读可以并发: share节点会被连着唤醒, 直到遇到一个独占节点为止