java 线程
线程状态
1. 新创建线程
2. 可运行线程
调用 start 方法后, 线程处于 runnable 状态. 它可能在运行, 也可能没有运行(等待时间片).
3. 被阻塞线程和等待线程
- 当一个线程试图获取一个内部的对象锁(而不是
java.util.concurrent库中的锁), 而该锁被其他线程持有, 则该线程进入 阻塞状态. - 当线程等待另一个线程通知调度器一个条件时, 它自己进入 等待状态. 例如, 调用
Object.wait或Thread.join方法, 或者是等待java.util.concurrent库中的Lock或Condition时. - 当调用的是具有超时参数的方法, 导致线程进入的就是 计时等待状态, 例如
Thread.sleep,Object.wait,Thread.join,Lock.tryLock,Condition.await的计时版.
4. 被终止的线程
- 因为
run方法正常退出而自然结束; - 因为一个没有不好的异常终止了
run方法而意外死亡.

浙公网安备 33010602011771号