Java如何暫停執行緒一段時間?

2019-10-16 22:27:29

在Java程式設計中,如何暫停執行緒一段時間?

以下範例顯示如何通過建立sleepThread()方法來暫停執行緒一段時間。

package com.yiibai;

public class SuspendingThread extends Thread {
    private int countDown = 5;
    private static int threadCount = 0;

    public SuspendingThread() {
        super("" + ++threadCount);
        start();
    }

    public String toString() {
        return "#" + getName() + ": " + countDown;
    }

    public void run() {
        while (true) {
            System.out.println(this);
            if (--countDown == 0)
                return;
            try {
                sleep(100);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        }
    }

    public static void main(String[] args) throws InterruptedException {
        for (int i = 0; i < 5; i++)
            new SuspendingThread().join();
        System.out.println("The thread has been suspened.");
    }
}

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

#1: 5
#1: 4
#1: 3
#1: 2
#1: 1
#2: 5
#2: 4
#2: 3
#2: 2
#2: 1
#3: 5
#3: 4
#3: 3
#3: 2
#3: 1
#4: 5
#4: 4
#4: 3
#4: 2
#4: 1
#5: 5
#5: 4
#5: 3
#5: 2
#5: 1
The thread has been suspened.