Java多線程之線程的暫停


Java多線程之線程的暫停

  下面該稍微休息一下了呢……不過,這里說的是線程休息,不是我們哦。本節將介紹一下讓線程暫停運行的方法。

  線程Thread 類中的sleep 方法能夠暫停線程運行,Sleep 也就是“休眠”的意思。sleep 方法是Thread 類的靜態方法。

  下面這條語句可以將當前的線程(執行這條語句的線程)暫停約1000 毫秒(約1 秒)。

  Thread.sleep(1000);

  如下代碼會輸出10 次Good! 字符串,而每輸出1 次,線程就暫停約1000 毫秒(約1 秒)。也就是每隔約1 秒就輸出1 次Good! 字符串

  每隔約1 秒輸出1 次Good !的程序(Main.java)

  public class Main {

    public static void main(String[] args) {
         for (int i = 0; i < 10; i++) {

        System.out.println("Good!");

        try {

          Thread.sleep(1000);
        } catch (InterruptedException e) {

          e.printStackTrace();
        }
      }
    }
  }

  sleep 方法的調用放在了try...catch 中, 這是因為,sleep 方法有可能會拋出InterruptedException 異常。InterruptedException 異常能夠取消線程的處理。

  在實際程序中,sleep 的使用頻率並沒有這么高。最多也就是在設計一定時間后自動關閉的對話框,或把按鈕按下瞬間的狀態顯示給用戶看時才會用到。

  在sleep 方法中,停止時間也可以指定到納秒(10-9 秒)單位,語法如下。

  Thread.sleep( 毫秒, 納秒);

  不過,通常情況下Java 平台運行環境無法實現這么精確的控制。具體的精確程度依Java 平台運行環境而不同。

  如何喚醒呢:

  如果要中途喚醒被Thread.sleep 休眠的線程,則可以使用interrupt 方法。

  參考:圖解Java多線程設計模式


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM