2
0

More than 1 year has passed since last update.

【JavaGold】Threadクラス

Posted at

概要

Javaプログラム内でスレッド1を作成および制御するために使用されるクラスである。

Threadクラスを使用することで、以下のような操作が可能となる。 

  1. スレッドの作成
  2. スレッドの開始
  3. スレッドの制御

スレッドの作成

Threadクラスを継承したクラスを定義することで、新しいスレッドを作成できる。スレッドを作成するには、継承したクラスで runメソッドをオーバーライドし、スレッドが実行する処理を記述する。

スレッドの開始

スレッドを開始するには、Threadクラスのインスタンスを作成し、startメソッドを呼び出す。
startメソッドは、スレッドを実行可能状態にし、runメソッドを実行する。

スレッドの制御

Threadクラスには、スレッドの実行を制御するためのメソッドが用意されている。

  • sleepメソッド:スレッドを一定時間停止させることができる。
  • joinメソッド:スレッドの終了を待つことができる。
public class MyThread extends Thread {
    @Override
    public void run() {
        // スレッドが実行する処理を記述
        for (int i = 0; i < 5; i++) {
            System.out.println("Thread: " + i);
            try {
                Thread.sleep(1000);  // 1秒待機
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) {
        MyThread thread = new MyThread();
        thread.start();  // スレッドを開始

        // メインスレッドの処理
        for (int i = 0; i < 5; i++) {
            System.out.println("Main: " + i);
            try {
                Thread.sleep(1000);  // 1秒待機
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

上記の例では、MyThreadというクラスを定義し、Threadクラスを継承している。runメソッドをオーバーライドして、スレッドが実行する処理を記述している。

mainメソッドでは、MyThreadクラスのインスタンスを作成し、startメソッドを呼び出してスレッドを開始している。

実行結果
Main: 0
Thread: 0
Main: 1
Thread: 1
Thread: 2
Main: 2
Thread: 3
Main: 3
Thread: 4
Main: 4

上記の結果は、メインスレッドとスレッドが交互に実行されることを示している。メインスレッドがカウントを表示した後、スレッドがカウントを表示し、それぞれのスレッドは1秒間隔で繰り返し実行される。

どのスレッドが先に実行されるかはプログラムからは制御できず、JVMの実装やCPUのタイミングなどで決まる。

  1. メソッドがスタック領域(メモリ領域)の出入りを何度も繰り返す一連の流れのこと。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0