1. 线程基础
    1. 线程基本概念
    2. 线程、进程区别及联系
      1. 调度
      2. 地址空间
      3. 通信方式
    3. 创建线程的方式
      1. 继承Thread
      2. 实现Runnable
    4. 状态
      1. 线程调度状态
        1. 新建
        2. 就绪
        3. 运行
        4. 阻塞
        5. 死亡
      2. 线程自身状态
        1. NEW
        2. RUNNABLE
        3. BLOCKED
          1. monitor lock
        4. WAITING
          1. Object.wait
          2. Thread.join
          3. LockSupport.part
        5. TIMED_WAITING
          1. Thread.sleep
          2. Object.wait(timeout)
          3. Thread.join(timeout)
          4. LockSupport.parkNano
          5. LockSupport.parkUtil
        6. TERMINATED
  2. 线程类介绍
    1. Thread
      1. run
      2. start
      3. join
      4. sleep
      5. yield
      6. isInterrupted
      7. interrupt
      8. interrupted
      9. setDeamon
      10. setPriority
      11. ...
    2. Timer、TimerTask
    3. Runnable
    4. ThreadGroup
  3. 线程安全
    1. 概念
    2. 线程的可见性及互斥性
    3. synchronized
      1. 特征
        1. 可见性
        2. 互斥性
      2. 使用条件
      3. 场景
    4. volatile
      1. 特征
        1. 可见性
      2. 使用条件
      3. 场景
    5. ThreadLocal
      1. 使用场景
      2. 反例:错误使用造成的Memory Leak
  4. 线程间协调
    1. 方法
      1. wait
      2. notify
      3. notifyAll
    2. 条件阻塞
      1. 条件
      2. 等待队列
  5. 不容易理解的方法
    1. interrupt
    2. interrupted
    3. schedule:fixed-delay
    4. scheduleAtFixedRate:fixed-rate,需要synchronized
  6. 线程与安全
  7. 参考资料