首页 > 图灵资讯 > 技术篇>正文
Java线程生命周期探微
2024-04-12 14:23:28
java线程经历了以下生命周期阶段:创建:通过继承thread类或实现runnable接口创建。准备:创建后,线程进入准备状态,等待调度执行。操作:调度执行,正执行代码。堵塞:遇到障碍时,代码无法执行。等待:主动等待其他线程。休眠:使用slep()休眠,无法执行代码。通知:通过notify()或notifyalll()唤醒。死亡:执行完成或出现错误后,不能再调度执行。
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线程生命周期探索的详细内容。请关注图灵教育的其他相关文章!