一线大厂招聘,高并发系统研发,进阶高级程序员…并发编程是必须掌握的技能。而深究其原理、源码才能写出高质量的代码。
JDK8并发编程实战源码探究系列涉及java.util.concurrent
包几乎所有类或者接口的原理、使用实战、源码讲解。
中间可能还会穿插计算机原理底层、CPU、操作系统、JMM、字节码分析等知识点,更深刻、全方位掌握并发编程。
JDK8并发包概览
以下信息依据 openjdk8描述:
java.util.concurrent
直接包里面包含 59 个类或者接口。
java.util.concurrent.atomic
里面包含18个类或者接口。
java.util.concurrent.locks
里面包含11个类或者接口。
原子类(atomic包)
说明,原子类或者说CAS操作都依赖于Unsafe类,所以这个类也需要了解。
一类
- AtomicInteger
- AtomicBoolean
- AtomicIntegerArray
- AtomicLong
- AtomicReference
二类
- AtomicMarkableReference
- AtomicStampedReference
三类
- AtomicIntegerFieldUpdater
- AtomicLongFieldUpdater
- AtomicReferenceFieldUpdater
四类
- Striped64
- LongAdder
- DoubleAdder
- LongAccumulator
- DoubleAccumulator
锁(locks包、AQS)
一类
- AbstractQueuedSynchronizer
- Lock 接口
- ReentrantLock
- Condition
- LockSupport
二类
- ReadWriteLock 接口
- ReentrantReadWriteLock
- StampedLock
并发工具类(concurrent直接包)
- CountDownLatch
- CyclicBarrier
- Semaphore
- Exchanger
- Phaser
并发集合类(concurrent直接包)
- ConcurrentHashMap
- ConcurrentLinkedQueue
- ConcurrentSkipListMap
- CopyOnWriteArrayList
队列相关类(concurrent直接包)
- ArrayBlockingQueue
- LinkedBlockingQueue
- PriorityBlockingQueue
- SynchronousQueue
- DelayQueue
- LinkedTransferQueue
线程池(concurrent直接包)
- Executor 、 ExecutorService 、ThreadFactory、RejectedExecutionHandler接口
- Executors
- ThreadPoolExecutor
- ScheduledThreadPoolExecutor
- ThreadLocalRandom
- TimeUnit
Fork/Join
- ForkJoinPool
- ForkJoinTask
- ForkJoinWorkerThread
Callable&Future&CompletableFuture
- Callable
- FutureTask
- CompletableFuture
- ExecutorCompletionService