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();
                }
        }
}

関連項目




スポンサーリンク