Java中的线程有五种状态,分别是:新建状态(New)、就绪状态(Runnable)、运行状态(Running)、阻塞状态(Blocked)和终止状态(Dead)。
新建状态(New)
新建状态是指线程被创建后还没有调用start()方法,此时线程处于新建状态,处于这种状态的线程无法执行,只有调用start()方法,线程才能够进入就绪状态。
就绪状态(Runnable)
就绪状态是指线程已经调用了start()方法,但是还没有被CPU调度获取到CPU时间片,此时线程处于就绪状态,处于这种状态的线程可以被CPU调度,但是有可能会被其他线程抢占,只有获取到CPU时间片,线程才能够进入运行状态。
运行状态(Running)
运行状态是指线程已经获取到CPU时间片,正在执行run()方法中的代码,此时线程处于运行状态,处于这种状态的线程可以被其他线程抢占,只有当前线程执行完毕,线程才能够进入就绪状态。
阻塞状态(Blocked)
阻塞状态是指线程调用了wait()、sleep()或者join()方法,此时线程处于阻塞状态,处于这种状态的线程不能被CPU调度,只有当线程的等待时间结束,线程才能够进入就绪状态。
终止状态(Dead)
终止状态是指线程已经执行完毕,此时线程处于终止状态,处于这种状态的线程不能被CPU调度,只有当线程被重新创建,线程才能够进入新建状态。
Java中的线程状态是用来表示线程的运行状态的,线程的状态可以用来控制线程的执行,从而实现多线程的并发执行。