Java 示例 - 挂起线程

  • 问题描述

    如何暂停线程一段时间?
  • 解决方案

    以下示例显示了如何通过创建 sleepThread() 方法暂停线程一段时间。
    
    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.");
       }
    }
    
  • 结果

    上面的代码示例将产生以下结果。
    
    #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.