线程可以有如下六个状态:
A:NEW 新创建
B:Runnable 可运行
C:blocked 被阻塞
D:Waiting 等待
E:Timed Waiting 计时等待
F:Terminated 被终止
A:新线程的创建:使用new 关键字创建一个新线程时,该线程还没有被运行,此时线程的状态为 new ,一个线程处于新创建状态时,程序还未运行线程中的代码。
B:可运行状态:一旦调用线程的start方法,线程处于runnable 状态。任何给定时刻,一个可运行的线程,可能正在运行,也可能没有运行。
C:被阻塞和等待线程:线程处于该状态时它暂时不活动,直到线程调度器重新激活它。
下图展示了线程可以具有的状态以及从一个状态到另一个状态可能的转换。
D: 被终止的线程,
- 因为run 方法正常退出而自然死亡
- 因为一个没有捕获的异常终止了run方法而意外死亡。