Java スレッドをスリープさせる方法
提供: Java入門
スポンサーリンク
Javaのスレッドをスリープ(一時停止)するために、Thread.sleep()やTimeUnitが利用されます。TimeUnitのほうが可読性(リーダビリティ)が高いため、Thread.sleep()より好まれます。
TimeUnit.SECONDS.sleep(1)は 秒単位、 TimeUnit.MILLISECONDS.sleep(1)は ミリ秒単位、 TimeUnit.MICROSECONDS.sleep(1)は マイクロ秒単位、 TimeUnit.NANOSECONDS.sleep(1)は ナノ秒単位となります。
読み方
- sleep
- すりーぷ
目次
概要
Javaのスレッドをスリープさせるには、
-
Thread.sleep(1000);
-
などTimeUnit.SECONDS.sleep(1);
が利用されます。
Thread.sleep() vs TimeUnit.SECONDS.sleep()
Thread.sleep()とTimeUnit.SECONDS.sleep()ファミリーに機能的な違いはありません。Thread.sleepは、Thread.sleepを実行するラッパーです。
Thread.sleep(1000);
と
TimeUnit.SECONDS.sleep(1);
の違いは、プログラマにとっての可読性(ヒューマンリーダビリティ)です。
TimeUnitでは、秒のsleepなのか、ミリ秒のsleepなのか、というのを英語の単語で明示できます。
TimeUnit.SECONDS.sleep(1); // 秒単位 TimeUnit.MILLISECONDS.sleep(1); // ミリ秒単位 TimeUnit.MICROSECONDS.sleep(1); // マイクロ秒単位 TimeUnit.NANOSECONDS.sleep(1); // ナノ秒単位
Thread.sleep()の書式
Thread.sleep()は、ミリ秒単位でスリープ時間を指定します。
public static void sleep(long millis) throws InterruptedException
さらに、ミリ秒+ナノ秒を指定できます。
public static void sleep(long millis, int nanos) throws InterruptedException
UnitTimeの書式
import java.util.concurrent.TimeUnit; TimeUnit.DAYS.sleep(1); // 日単位 TimeUnit.HOURS.sleep(1); // 時間単位 TimeUnit.SECONDS.sleep(1); // 秒単位 TimeUnit.MILLISECONDS.sleep(1); // ミリ秒単位 TimeUnit.MICROSECONDS.sleep(1); // マイクロ秒単位 TimeUnit.NANOSECONDS.sleep(1); // ナノ秒単位
ソースコード
/* * TimeUnit1.java * Copyright (C) 2015 kaoru <kaoru@localhost> */ import java.util.concurrent.TimeUnit; public class TimeUnit1 { public TimeUnit1() { } public static void main(String[] args) { try { TimeUnit.SECONDS.sleep(1); // 秒単位 TimeUnit.MILLISECONDS.sleep(1); // ミリ秒単位 TimeUnit.MICROSECONDS.sleep(1); // マイクロ秒単位 TimeUnit.NANOSECONDS.sleep(1); // ナノ秒単位 } catch (InterruptedException e) { e.printStackTrace(); } } }
関連項目
ツイート
スポンサーリンク