Java的Lock实现类介绍
Java的Lock实现类介绍
- 所的实现类:AQS(AbstractQueuedSynchronizer)、ReentrantLock、ReentrantReadWriteLock,CountDownLatch,Semphore。
- 其他多线程协作的场景: CyclicBarrier。
- AQS源码解析。
Lock类介绍
Lock类相关介绍
- Lock重要的实现类:ReentrantLock 和 ReentrantReadWriteLock。
- Lock:定义了标准的Lock的api。
- ReentrantLock :重入锁(实现了AQS) 支持公平和非公平。
- ReentrantReadWriteLock:同ReentrantLock 在基础上支持读写分离适合多读少写的场景
- Condition:是需要与Lock配合使用的,提供多个等待集合,更精确的控制(底层是park/unpark机制)
Lock类定义
API定义:
总结:
1、lock()最常用;
2、lockInterruptibly()方法一般更昂贵,有的impl可能没有实现lockInterruptibly(),
只有真的需要效应中断时,才使用,使用之前看看impl对