线程状态、切换、创建

线程状态、切换、创建

  1. 线程状态

    • New,新建
    • Runnable,可运行状态
    • Running,运行中
    • Block,阻塞中。分为释放锁和不释放锁的阻塞
    • Terminal,结束
  2. 线程切换

    • Thread 静态方法
      • sleep(), 当前线程停止,不释放锁。
      • yield(), 当前线程让出CPU时间片进入可运行状态从新竞争获取CPU时间片
    • Thread对象方法
      • join(), 当前线程等待join()线程结束后再继续,不释放锁
    • Object方法
      • wait(), 等待并释放锁。
      • notify(), notifyAll(),等待状态的线程重新进入Runable状态竞争CPU时间片。
      • 这几个方法需要在加锁的代码中执行,否则会异常。
  3. 线程创建

    • 继承Thread
    • 实现Runnable
    • 实现Callable
    • 线程池

​ 另附Java内存模型笔记