「こんにちは、アミーゴ! 今日は Bilaabo が、スレッドを扱うときに使用する最も興味深いメソッド、 sleepについてお話します。sleepメソッドはThread クラスの静的メソッドとして宣言されます。つまり、どのオブジェクトにもアタッチされません。この方法は、プログラムをしばらくの間「スリープ状態」にすることです。その仕組みは次のとおりです。」

コード 説明
public static void main(String[] args)
{
Thread.sleep(2000);
}

プログラムが始まります。

その後 2 秒間フリーズします (2,000 ミリ秒)

それで終わります。

sleepメソッド唯一のパラメータは時間の長さです。時間間隔は 1000 分の 1 秒 (ミリ秒) で指定します。スレッドがこのメソッドを呼び出すと、指定されたミリ秒間スリープ状態になります。

「この方法をいつ使用するのが最適ですか?」

「このメソッドは、頻繁ではないが定期的に何かを行う必要がある場合に、子スレッドでよく使用されます。次の例を見てください。」

コード 説明
public static void main(String[] args)
{
while (true)
{
Thread.sleep(500);
System.out.println("Tick");
}
}
プログラムは永久に実行されます。ループ条件は常に true です。

ループ内でプログラムが行うことは次のとおりです:
a)  0.5 秒間スリープします。
b) 画面に «Tick» を表示します。

つまり、何らかのアクションが 1 秒間に 2 回実行されます。

「ああ、それは面白いですね。」

「気に入っていただけて嬉しいです、友よ!」

「アクションを 1 秒間に 100 回実行したい場合はどうすればよいですか?」

「アクションを 1 秒あたり 100 回実行する必要があり、1 秒が 1000 ミリ秒である場合、アクションは 10 ミリ秒ごとに 1 回実行する必要があります。」

アクションに 2 ミリ秒かかる場合は、8 ミリ秒の遅延を追加する必要があります。これらを組み合わせると、10 ミリ秒ごとに実行されます。これは 1 秒あたり 100 回に相当します。

アクションがほぼ瞬時に行われる場合は、10 ミリ秒の遅延 (スリープ) を追加します。その後、1秒あたり約100回実行されます。

「ありがとう、ビラーボ。」