前言:
在我们进行多线程编程,脑海里会想到线程运行的状态到底是什么?因此我整理出这线程的状态这篇博文。线程的状态分为六种:新建状态(NEW)、就绪状态(RUNNABLE)、阻塞状态(BLOCKED)、等待状态(WAITING)、指定时间等待状态(TIMED_WAITING)、完成状态(TERMINATED)。
目录
线程的六种状态
线程的状态是一个枚举类型 Thread.State,因此可以通过以下代码可以观察到线程的所有状态:
public static void main(String[] args) {
for (Thread.State state : Thread.State.values()) {
System.out.println(state);
}
}
运行后打印:
解释线程的六个状态:
- NEW:线程处于已创建状态,还未启动。
- RUNNABLE:线程已启动,处于工作状态或即将工作状态。
- BLOCKED:线程处于阻塞状态,等待其他线程执行完毕。
- WAITING:线程处于等待状态,无限制等待状态。
- TIMED_WAITING:线程处于定时的等待状态。
- TERMINATE:线程已执行完毕。
1. 新建状态(NEW)
当一个线程被创建过后,未调用 start() 方法。此时的线程就处于新建状态,在此可理解为此时的线程只是一串代码并未在操作系统中运行。
public static void main(String[] args) {
Thread thread = new Thread(()-> {
System.out.println("Hello thread");
});
System.out.println(thread.