目录

如何暂停一段时间的线程?(How to suspend a thread for a while?)

问题描述 (Problem Description)

如何暂停一段时间的线程?

解决方案 (Solution)

下面的示例演示如何通过创建sleepingThread()方法暂停一段时间。

public class SleepingThread extends Thread {
   private int countDown = 5;
   private static int threadCount = 0;
   public SleepingThread() {
      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 SleepingThread().join();
      System.out.println("The thread has been suspened.");
   }
}

结果 (Result)

上面的代码示例将产生以下结果。

#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.
↑回到顶部↑
WIKI教程 @2018