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