首頁  >  文章  >  Java  >  Java線程生命週期探微

Java線程生命週期探微

PHPz
PHPz原創
2024-04-11 14:15:01684瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn