ホームページ  >  記事  >  Java  >  Javaでのsleepの使用法は何ですか

Javaでのsleepの使用法は何ですか

coldplay.xixi
coldplay.xixiオリジナル
2020-06-24 14:21:4836529ブラウズ

Java での sleep の使用法は次のとおりです。現在実行中のスレッドを強制的にスリープ状態にします (実行を一時停止します)。例: [Thread.sleep(long millis)] スレッドがスリープ状態になると、スレッドは以前の実行可能状態には戻りません。ウェイクアップ状態; スリープ時間が経過すると、実行可能な状態に戻ります。

Javaでのsleepの使用法は何ですか

Java での sleep の使用法は次のとおりです:

Thread.sleep(long millis) および Thread.sleep(long millis, int nanos)static メソッドは、現在実行中のスレッドを強制的にスリープ (実行を一時停止) させ、「スレッドの速度を低下」させます。

  • スレッドがスリープ状態になると、どこかでスリープ状態になり、起動するまで実行可能な状態には戻りません。

  • スリープ時間が経過すると、実行可能な状態に戻ります。

1. スレッド スリープの理由: Java 仕様では合理的な動作が保証されていないため、スレッドの実行が速すぎるか、次のラウンドに強制的に入る必要があります。回転。

2. スリープの実装: 静的メソッドを呼び出します

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

3. スリープ位置: 他のスレッドに実行の機会を与えるために、Thread.sleep() への呼び出しをスレッド run()内。これにより、スレッドは実行中に確実にスリープ状態になります。

public class TestSleep {
 
  public static void main(String[] args) {
   
    MyThread2 t1 = new MyThread2("TestSleep");
    t1.start();
      
     for(int i=0 ; i <10; i++)
              System.out.println("I am Main Thread");
   }
 }
 
 class MyThread2 extends Thread {
  
    MyThread2(String s) {
     super(s);
     }
     
  public void run() {
    for(int i = 1; i <= 10; i++) {
     System.out.println("I am "+getName());
     try {
      sleep(1000); //暂停,每一秒输出一次
      }catch (InterruptedException e) {
      return;
     }
     }
   }
  }

注:

  • 1. スレッド スリープは、すべてのスレッドが実行できるようにするための最良の方法です。

  • 2. スレッドはスリープの期限が切れると自動的に起動し、実行状態ではなく実行可能状態に戻ります。 sleep() で指定された時間は、スレッドが実行されない最小時間です。したがって、sleep() メソッドは、スリープの期限が切れた後にスレッドが実行を開始することを保証できません。

  • 3. sleep() は静的メソッドであり、現在実行中のスレッドのみを制御できます。

例: 100 までカウントし、各数値の間で 1 秒間一時停止し、10 数値ごとに文字列を出力するカウンター

public class MyThread extends Thread {
    public void run() {
        for (int i = 0; i < 100; i++) {
            if ((i) % 10 == 0) {
                System.out.println("-------" + i);
            }
            System.out.print(i);
            try {
                Thread.sleep(1000);
                System.out.print("    线程睡眠1秒!\n");
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
    public static void main(String[] args) {
        new MyThread().start();
    }
}

推奨チュートリアル: " Javaビデオチュートリアル"

以上がJavaでのsleepの使用法は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。