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