JDK8并发编程实战源码探究系列(一)并发包概览

2023-05-05 19:49:05 浏览数 (2)

一线大厂招聘,高并发系统研发,进阶高级程序员…并发编程是必须掌握的技能。而深究其原理、源码才能写出高质量的代码。 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

0 人点赞