在学习之前,需要对线程的概念和多线程编程的常见问题有基本理解。

1 线程

  1. Thread(重要)
  2. Runnable(重要)
  3. Callable和FutureTask(重要)
  4. CompletableFuture

2 线程池

  1. ThreadPoolExecutor(重要)
  2. ScheduledThreadPoolExecutor
  3. ForkJoinPool
  4. Executors

3 锁

  1. synchronized(重要)
  2. volatile(重要)
  3. AbstractQueuedSynchronizer(重要)
  4. ReentrantLock(重要)
  5. CountDownLatch
  6. ReentrantReadWriteLock
  7. Semaphore
  8. CyclicBarrier

4 并发容器

  1. ConcurrentHashMap(重要)
  2. ArrayBlockingQueue
  3. ConcurrentLinkedDeque和ConcurrentLinkedQueue
  4. ConcurrentSkipListMap和ConcurrentSkipListSet
  5. CopyOnWriteArrayList和CopyOnWriteArraySet
  6. DelayQueue
  7. LinkedBlockingDeque和LinkedBlockingQueue
  8. LinkedTransferQueue
  9. PriorityBlockingQueue

5 线程工具

  1. ThreadLocal(重要)
  2. InheritableThreadLocal
  3. ThreadLocalRandom

6 原子类

  1. AtomicInteger:代表AtomicBoolean和AtomicLong
  2. AtomicIntegerArray:代表AtomicLongArray
  3. AtomicReference和AtomicReferenceArray
  4. AtomicMarkableReference
  5. AtomicStampedReference