线程的几种状态

在多线程编程中,线程可以处于不同的状态,表示它们的执行状态和行为。以下是 Java 中线程的几种常见状态:

NEW(新建状态)

线程被创建但尚未启动

在这个状态下,线程对象已经被创建,但还没有调用 start () 方法来启动线程的执行。线程对象可以是通过实例化 Thread 类创建的,也可以是通过实现 Runnable 接口并将其传递给 Thread 构造函数来创建的。

在 NEW 状态下,线程的生命周期尚未开始,它不会占用 CPU 资源,也不会执行任何代码。只有在调用了线程对象的 start () 方法之后,线程才会从 NEW 状态转换到 RUNNABLE 状态,开始执行其 run () 方法的内容。

RUNNABLE(可运行状态)

线程正在 Java 虚拟机中执行,可能正在等待 CPU 时间片,也可能在执行中。

在这个状态下,线程已经被启动,正在等待分配 CPU 时间片以执行代码。

需要注意的是,即使线程处于 RUNNABLE 状态,也不能保证它一定在运行,因为线程调度由操作系统决定,操作系统可能会按照自己的策略和优先级来分配 CPU 时间片给各个线程。因此,即使线程是 RUNNABLE 状态,它也可能被暂停、挂起或切换到其他线程上,直到再次分配到 CPU 时间片为止。

以下是一个简单示例,展示了线程从 NEW 状态到 RUNNABLE 状态的转换,以及线程的实际执行情况:

public class RunnableThreadExample {
    pu

你可能感兴趣的:(#,面试专用专栏之Java多线程,java)