カテゴリ: Java 更新日: 2026/02/10

JavaのThreadクラスsleepメソッドを完全ガイド!初心者でもわかるスレッドの一時停止

Threadのsleepメソッド
Threadのsleepメソッド

先生と生徒の会話形式で理解しよう

生徒

「Javaでスレッドを一時的に止めたいときってどうすればいいですか?」

先生

「そのときに役立つのがThreadクラスのsleepメソッドです。java.langパッケージに含まれていて、指定した時間だけスレッドを停止できます。」

生徒

「なるほど!でもsleepを使うときに気をつけることってありますか?」

先生

「はい、いくつかポイントがあるので順番に詳しく説明していきましょう。」

1. sleepメソッドとは?

「1. sleepメソッドとは?」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

1. sleepメソッドとは?
1. sleepメソッドとは?

sleepメソッドは、スレッドを一定時間だけ一時停止させるための静的メソッドです。Javaのjava.lang.Threadクラスに用意されており、ミリ秒単位で待機時間を指定します。例えば「1秒間だけスレッドを止めたい」といった制御が可能になります。並行処理を行うプログラムで一時的な待機やリズムをつけたいときに便利です。

2. 基本的な使い方

2. 基本的な使い方
2. 基本的な使い方

sleepメソッドの基本的な使い方は以下の通りです。Thread.sleep(時間)という形で使います。時間はミリ秒単位で指定します。


public class SleepExample {
    public static void main(String[] args) {
        System.out.println("処理開始");
        try {
            Thread.sleep(2000); // 2秒間停止
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("2秒後に処理再開");
    }
}

処理開始
2秒後に処理再開

3. InterruptedExceptionに注意

3. InterruptedExceptionに注意
3. InterruptedExceptionに注意

sleepメソッドを使うときには必ずInterruptedExceptionを処理する必要があります。これはスレッドが停止している間に割り込みが発生した場合にスローされる例外です。基本的にはtry-catchで例外処理を記述しておきます。

4. 複数スレッドとsleepの組み合わせ

「4. 複数スレッドとsleepの組み合わせ」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

4. 複数スレッドとsleepの組み合わせ
4. 複数スレッドとsleepの組み合わせ

複数のスレッドを同時に実行しながら、一定時間ごとに処理を止めることで動作を分かりやすく制御することができます。以下は二つのスレッドを動かし、それぞれ1秒ごとにメッセージを表示する例です。


public class MultiSleepExample {
    public static void main(String[] args) {
        Runnable task1 = () -> {
            for (int i = 0; i < 3; i++) {
                System.out.println("タスク1: " + i);
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        };

        Runnable task2 = () -> {
            for (int i = 0; i < 3; i++) {
                System.out.println("タスク2: " + i);
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        };

        new Thread(task1).start();
        new Thread(task2).start();
    }
}

5. sleepメソッドと時間単位

5. sleepメソッドと時間単位
5. sleepメソッドと時間単位

Thread.sleepはミリ秒単位で指定します。例えば1000で1秒、5000で5秒停止します。また、引数を二つ指定することでナノ秒単位の待機を加えることもできます。ただし実際にはOSやCPUのスケジューリングに依存するため、完全に正確な時間で停止するとは限りません。

6. sleepメソッドの使いどころ

6. sleepメソッドの使いどころ
6. sleepメソッドの使いどころ

sleepはさまざまな場面で使われます。例えば、一定時間ごとにログを出力する処理、APIにアクセスする間隔を調整する処理、ゲームのフレームレートを制御する処理などです。初心者がスレッドプログラミングを学ぶときには、処理の流れを見やすくするためにもsleepを挟むと理解しやすくなります。

7. 注意点とベストプラクティス

「7. 注意点とベストプラクティス」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

7. 注意点とベストプラクティス
7. 注意点とベストプラクティス

sleepを乱用するとプログラム全体のレスポンスが悪くなったり、意図せず処理が遅延する原因になることがあります。また、マルチスレッド環境では他のスレッドとのバランスを考えて設計する必要があります。できるだけ必要な場面でのみ使い、処理待ちには他の方法(例: waitや同期機構)を検討するのが望ましいです。

8. java.langパッケージとThreadクラスの関係

8. java.langパッケージとThreadクラスの関係
8. java.langパッケージとThreadクラスの関係

java.langパッケージはJavaで最も基本的なパッケージであり、自動的に読み込まれます。その中に含まれるThreadクラスは並行処理の中心的な存在です。sleepメソッドはこのThreadクラスに備わっているため、初心者でもインポート不要ですぐに使える便利な機能です。

Javaの基礎を最初から体系的に学びたい人には、 初心者向けで定評のある定番入門書がこちらです。

スッキリわかるJava入門 第5版をAmazonで見る

※ Amazon広告リンク

カテゴリの一覧へ
新着記事
New1
Spring
Spring の@RequestParamの使い方!テキストボックス、ラジオボタン、チェックボックス、セレクトボックスの値を受け取る。
更新記事
New2
JSP
EL式の基本構文まとめ!${}で使う書き方のルールを解説
更新記事
New3
Java
JavaのBigIntegerとisProbablePrimeメソッドを完全解説!初心者でもわかる素数判定
更新記事
New4
JSP
JSPで発生する主なエラーとは?初心者向けに原因と対処法をやさしく解説
新規投稿
人気記事
No.1
Java&Spring記事人気No1
JSP
JSPのおすすめ学習・用語まとめ【2026年最新版】初心者が知っておきたい基本をやさしく解説
No.2
Java&Spring記事人気No2
Java
Javaのクラスとインスタンス化、コンストラクタの使い方完全ガイド!初心者でもわかるオブジェクト指向の基礎
No.3
Java&Spring記事人気No3
Spring
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.4
Java&Spring記事人気No4
Spring
Thymeleaf(タイムリーフ)入門!初心者でもわかるSpring Bootとテンプレートエンジンの使い方
No.5
Java&Spring記事人気No5
Spring
Javaの@PreAuthorizeアノテーションを完全ガイド!初心者でもわかるメソッドセキュリティ設定
No.6
Java&Spring記事人気No6
Spring
Springの@Queryアノテーションを徹底解説!初心者でもわかるSpring Bootのカスタムクエリ
No.7
Java&Spring記事人気No7
Java
JavaのExceptionクラスを完全解説!初心者でも理解できる例外処理の基本
No.8
Java&Spring記事人気No8
JSP
JSPでCSSやJSを読み込む基本!外部ファイルのパス指定に注意しよう