Java Concurrent Summary
Java Concurrent Summary
一、概要
并发包四种类型:原子变量、同步器、并发容器、线程池
同步器
7个
同步器类名 | since | 原理 |
---|---|---|
AbstractQueuedSynchronizer | 1.5 | CAS自旋,LockSupport,CLH队列 |
ReentrantLock | 1.5 | AQS,CAS |
ReentrantReadWriteLock | 1.5 | AQS,CAS自旋,高低位读写 |
CountDownLatch | 1.5 | AQS,CAS自旋 计数归零唤醒其他线程 |
Semaphore | 1.5 | AQS,CAS自旋 |
CyclicBarrier | 1.5 | ReentrantLock,Condition 计数归零执行操作,唤醒其他线程 |
Phaser | 1.7 | CAS自旋,LockSupport |
StampedLock | 1.8 | CAS自旋,LockSupport |
并发容器
7个阻塞队列
并发容器类名 | since | 原理 |
---|---|---|
BlockingQueue | 1.5 | |
ArrayBlockingQueue | 1.5 | |
LinkedBlockingQueue | 1.5 | |
SynchronousQueue | 1.5 | |
PriorityBlockingQueue | 1.5 | |
DelayQueue | 1.5 | |
LinkedTransferQueue | 1.7 | |
BlockingDeque | 1.6 | |
LinkedBlockingDeque | 1.6 |
9个其他并发容器
其他并发容器 | since | |
---|---|---|
Exchanger | 1.5 | CAS自旋,park/unpark |
FutureTask | 1.5 | CAS自旋,park/unpark |
ConcurrentHashMap | 1.5 | |
ConcurrentLinkedQueue | 1.5 | |
CopyOnWriteArrayList | 1.5 | |
CopyOnWriteArraySet | 1.5 | |
ConcurrentSkipListMap | 1.6 | |
ConcurrentSkipListSet | 1.6 | |
ConcurrentLinkedDeque | 1.7 |