首页 > Java > java教程 > 正文

Java线程生命周期探微

PHPz
发布: 2024-04-11 14:15:01
原创
666 人浏览过

Java线程经历以下生命周期阶段:创建:通过继承Thread类或实现Runnable接口创建。准备:创建后,线程进入准备状态,等待调度执行。运行:被调度执行,正执行代码。阻塞:遇到障碍时,无法执行代码。等待:主动等待其他线程。休眠:调用sleep()方法休眠,无法执行代码。通知:通过notify()或notifyAll()方法唤醒。死亡:执行完成或出现错误后,无法再调度执行。

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线程生命周期探微的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!