2
public class SleepMessages {
    public static void main(String args[])
        throws InterruptedException {
        String importantInfo[] = {
            "Mares eat oats",
            "Does eat oats",
            "Little lambs eat ivy",
            "A kid will eat ivy too"
        };

        for (int i = 0;
             i < importantInfo.length;
             i++) {
            //Pause for 4 seconds
            Thread.sleep(4000);
            //Print a message
            System.out.println(importantInfo[i]);
        }
    }
}

このコードでは、スレッドの作成はありませんが、存在しますThread.sleep(4000)。では、このスレッドは何を表しているのでしょうか? メインプログラム自体?つまり、Thread は暗黙のうちにプログラムそのものでしょうか?

4

5 に答える 5

2

スレッドは暗黙的にプログラム自体を実行しますか?

いいえThread.sleep()。javadocsから引用するには:

現在実行中のスレッドを、指定されたミリ秒数だけスリープ (一時的に実行を停止) させます。これは、システム タイマーとスケジューラの精度と精度に依存します。

したがって、メソッドThread.sleep()を実行する「メイン」スレッドに発生する現在実行中のスレッドをスリープさせますmain(...)

では、このスレッドは何を表しているのでしょうか? メインプログラム自体?

No. Threadはクラス名です。それが何をするかについて、どのstaticメソッドを呼び出すかによって異なります。ただし、ほとんどのスレッドごとのメソッドでは、 ( sleep(...)yield()など)Thread.method()が現在実行中のスレッドまたはThread.currentThread().

于 2013-04-29T20:37:18.530 に答える