当前位置: 首页 > 图灵资讯 > 技术篇> Java线程生命周期探微

Java线程生命周期探微

来源:图灵教育
时间:2024-04-12 14:23:28

java线程经历了以下生命周期阶段:创建:通过继承thread类或实现runnable接口创建。准备:创建后,线程进入准备状态,等待调度执行。操作:调度执行,正执行代码。堵塞:遇到障碍时,代码无法执行。等待:主动等待其他线程。休眠:使用slep()休眠,无法执行代码。通知:通过notify()或notifyalll()唤醒。死亡:执行完成或出现错误后,不能再调度执行。

Java线程生命周期探微

Java 线程生命周期探微

在 Java 在中间,线程是一个轻量级的过程,有自己的堆栈、状态和执行。每个线程都有一个独特的生命周期,包括以下阶段:

1. 创建

线程生命周期始于创建,可以通过以下方式实现:

// 通过继承 Thread 类实现
Thread thread1 = new Thread() {
    public void run() {
        // 线程执行代码
    }
};

// 通过实现 Runnable 接口实现
Runnable task = new Runnable() {
    public void run() {
        // 线程执行代码
    }
};
Thread thread2 = new Thread(task);

登录后复制

2. 准备

创建线程后,它将进入准备状态。此时,线程尚未调度。

3. 运行

线程调度运行后,将进入运行状态。运行状态下的线程正在执行代码。

4. 阻塞

若线程遇到障碍,如等待资源,则会进入阻塞状态。此时,线程无法执行代码。

5. 等待

可以主动等待其他线程。调用 wait() 方法结束后,线程将进入等待状态。

6. 休眠

也可以调用线程 sleep() 该方法使其休眠一段时间。线程不能在休眠期间执行代码。

7. 通知

通过调用等待或休眠的线程 notify()notifyAll() 方法被唤醒。

8. 死亡

当线程执行完成或出现错误时,它将进入死亡状态。死亡状态的线程不能再调度。

实战案例

创建线程并打印输出:

class MyThread extends Thread {
    public void run() {
        System.out.println("Thread is running");
    }
}

public class Main {
    public static void main(String[] args) {
        MyThread thread = new MyThread();

        thread.start(); // 启动线程

        System.out.println("Thread state: " + thread.getState()); // 输出线程状态
    }
}

登录后复制

输出:

Thread is running
Thread state: RUNNABLE

登录后复制

这表明线程已成功创建并进入运行状态。

以上是Java线程生命周期探索的详细内容。请关注图灵教育的其他相关文章!