线程的状态以及状态变化
时间: 2023-12-29 07:05:49 浏览: 80
线程在其生命周期中有不同的状态,常见的有以下几种:
1. 新建(New):当创建线程对象时,线程处于新建状态。
2. 就绪(Runnable):当调用 start() 方法后,线程进入就绪状态,等待系统分配资源,可以被 CPU 调度执行。
3. 运行(Running):当线程被 CPU 调度执行时,线程处于运行状态。
4. 阻塞(Blocked):当线程等待某个条件时,例如等待输入输出、等待锁释放等,线程处于阻塞状态。当条件满足时,线程重新进入就绪状态。
5. 等待(Waiting):当线程等待其他线程通知,例如调用 wait() 方法时,线程处于等待状态。当其他线程调用 notify() 或 notifyAll() 方法时,线程重新进入就绪状态。
6. 超时等待(Timed Waiting):当线程调用 sleep() 方法或带有超时时间的 wait() 方法时,线程处于超时等待状态。当时间到达或其他线程中断当前线程时,线程重新进入就绪状态。
7. 终止(Terminated):当线程 run() 方法执行结束时,线程处于终止状态。
线程状态之间的转换如下:
1. 新建 -> 就绪
2. 就绪 -> 运行
3. 运行 -> 就绪、阻塞、等待、超时等待、终止
4. 阻塞、等待、超时等待 -> 就绪
5. 运行 -> 终止
阅读全文
相关推荐















