线程的生命周期包含5个阶段,包括:新建、就绪、运行、阻塞、死亡。
新建(new Thread)
当创建Thread类的一个实例(对象)时,此线程进入新建状态(未被启动)。
Thread t1=new Thread();
就绪(runnable)
调用start()方法后,JVM 进程会去创建一个新的线程,而此线程不会马上被 CPU 调度运行,进入Running状态,这里会有一个中间状态,就是Runnable状态,你可以理解为等待被 CPU 调度的状态
t1.start()
运行(running)
线程获得CPU资源正在执行任务(run()方法)
堵塞(blocked)
由于某种原因导致正在运行的线程让出CPU并暂停自己的执行,即进入堵塞状态。
死亡(dead)
意味着这个线程生命的终结,例如:
-
线程正常运行结束,生命周期结束;
-
线程运行过程中出现意外错误;
-
JVM 异常结束,所有的线程生命周期均被结束。