Java如何檢查執行緒是否停止?

2019-10-16 22:27:18

在Java程式設計中,如何檢查執行緒是否停止?

以下範例演示如何通過使用isAlive()方法來檢查執行緒是否已停止。

// from W w w .Y I I b  AI.c  o  M
package com.yiibai;

public class ThreadCompletion {
    public static void main(String[] argv) throws Exception {
        MyThread thread = new MyThread();
        thread.start();

        if (thread.isAlive()) {
            System.out.println("Thread has not finished");
        } else {
            System.out.println("Finished");
        }
        long delayMillis = 5000;
        thread.join(delayMillis);
        if (thread.isAlive()) {
            System.out.println("thread has not finished");
        } else {
            System.out.println("Finished");
        }
        thread.join();
    }
}

class MyThread extends Thread {

    boolean stop = false;

    public void run() {
        int i = 0;
        while (stop) {
            return ;
        }
    }
}

上述程式碼範例將產生以下結果 -

Thread has not finished
Finished