CH01-并发体系

理论基础

  • 为什么需要多线程
  • 什么是线程不安全
  • 并发问题的根源
    • 可见性
    • 原子性
    • 有序性
  • Java 提供的方案
    • 关键字
      • volatile
      • synchronized
      • final
    • 内存模型
      • Happens Before 规则
      • 锁优化
  • 线程安全的范围
    • 不可变
    • 绝对线程安全
    • 相对线程安全
    • 线程兼容
    • 线程对立
  • 实现方法
    • 互斥同步
      • synchronized
      • ReentrantLock
    • 非阻塞同步
      • CAS
      • Atomic Class
    • 无同步方案
      • 栈封闭
      • ThreadLocal
      • 可重入代码 Reentrant Code

线程基础

  • 线程状态转换
    • 新建 New
    • 可运行 Runnable
    • 阻塞 Blocking
    • 无限期等待 Waiting
    • 限期等待 Timed Waiting
    • 终止 Terminated
  • 线程使用方式
    • 实现 Runnable 接口
    • 继承 Thread 类
    • 实现 Callable 接口
  • 线程基础机制
    • Executor
    • Daemon
    • sleep
    • yield
  • 线程中断
    • InterruptedException
    • interrupted()
    • Executor 的中断操作
  • 线程互斥同步
    • synchronized
    • ReentrantLock
  • 线程协作
    • join()
    • wait() notify() notifyAll()
    • await() signal() signalAll()

并发工具

  • Locks
    • Lock 接口
    • AQS
    • Condition
    • LockSupport
    • 重入锁 ReentrantLock
    • 读写锁 ReadWriteLock
  • Collections
    • ConcurrentHashMap
    • ConcurrentLinkedQueue
    • BlockingQueue
    • CopyOnWriteArrayList
  • Executors
    • Executor
    • ForkJoin
    • ThreadPoolExecutor
    • FutureTask
  • Atomic
    • 基本类型
      • AtomicBoolean
      • AtomicInteger
      • AtomicLong
    • Array
      • AtomicBooleanArray
      • AtomicIntegerArray
      • AtomicLongArray
    • Reference
      • AtomicReference
      • AtomicMarkedReference
      • AtomicStampedReference
    • FieldUpdater
      • AtomicIntegerFiledUpdater
      • AtomicLongFiledUpdater
      • AtomicReferenceFiledUpdater
  • Tools
    • CountDownLatch
    • CyclicBarrier
    • Semaphore
    • Excahnger

并发本质

  • 协作
    • 管理
      • Lock & Condition
      • synchronized
    • 信号量 Semaphone
    • CountDownLatch
    • CyclicBarrier
    • Pharser
    • Exchanger
  • 分工
    • Executor 与 ThreadPool
    • ForkJoin
    • Future
    • 模式
      • Guarded Suspension
      • ThreadPerMessage
      • Balking
      • Worker Thread
      • 两阶段终止
      • 生产消费
  • 互斥
    • 无锁
      • CAS
      • Atomic
      • 模式
        • Imutablity
        • CopyOnWrite
        • ThreadLocal
    • 互斥锁
      • synchronized
      • Lock
      • ReadWriteLock

并发模式

框架案例

  • Guava RateLimitor
  • Netty
  • Disrutor
  • HikariCP