线程的状态间转换

时间:2023-01-20 18:14:55

一个线程有五种状态:新建,就绪,运行,阻塞和结束

新建:线程对象已创建,但还没有启动

就绪:调用start()方法后,线程进入就绪状态。在这种状态下,只要它获得CPU的处理资源就可以运行了。

运行:操作系统给准备就绪的线程分配CPU时间,线程就开始运行。

阻塞:线程能够运行,但需要等待某种条件。比如:调用了sleep()方法正在休眠,或者调用了wait方法正在等待,又或者正在等待一个I/O操作的完成。处于阻塞状态的线程,操作系统是不会分配给它任何CPU处理时间的,除非它等待的条件已经满足并且重新进入就绪状态。

结束:线程的run()方法执行完毕后,线程就进入结束状态。进入结束状态的线程将被系统永久的清除。


线程间的状态转换图:

线程的状态间转换