java 线程

线程状态

1. 新创建线程

2. 可运行线程

调用 start 方法后, 线程处于 runnable 状态. 它可能在运行, 也可能没有运行(等待时间片).

3. 被阻塞线程和等待线程

  1. 当一个线程试图获取一个内部的对象锁(而不是 java.util.concurrent 库中的锁), 而该锁被其他线程持有, 则该线程进入 阻塞状态.
  2. 当线程等待另一个线程通知调度器一个条件时, 它自己进入 等待状态. 例如, 调用 Object.waitThread.join 方法, 或者是等待 java.util.concurrent 库中的 LockCondition 时.
  3. 当调用的是具有超时参数的方法, 导致线程进入的就是 计时等待状态, 例如 Thread.sleep, Object.wait, Thread.join, Lock.tryLock, Condition.await的计时版.

4. 被终止的线程

  1. 因为 run 方法正常退出而自然结束;
  2. 因为一个没有不好的异常终止了 run 方法而意外死亡.
posted @ 2016-11-05 20:40  whilst  阅读(154)  评论(0编辑  收藏  举报