流程图
新建状态
当用 new 创建一个线程后,线程就处于新建状态,此时和其他普通 java 对象一样,由 JVM 创建内存空间,初始化成员变量值等。
就绪状态
调用 strat 或者由阻塞状态被解除时,进入就绪状态,此时,只能表示线程可以运行了,但不代表已经运行了,需要等待 CPU 的调度。
运行状态
在就绪状态的线程,获取到调度后,就到了运行状态,但是不一定一直维持运行状态。
阻塞状态
包括 sleep、wait,join,synchronized,I/ O 堵塞等,当前线程进入堵塞状态时,其他线程可以获得执行的机会。
死亡状态
当线程执行 run 结束、stop、setDeamon 或者异常等,线程就会结束,进入死亡状态。