【Java】Threadクラスを継承して、マルチスレッド処理サンプルを実装する

■スレッド

スレッドとは、「道筋」や「糸」のような意味である。

プログラムの処理を実行する際、1度に1つの命令を実行していく処理をシングルスレッドと呼ぶ。
一方、1度に2つ以上の命令を同時に実行する処理をマルチスレッドと呼ぶ。

■作成するプログラムの概要

・Threadクラスを継承し、マルチスレッド処理を実装する。

・2つのクラスについて、10回、標準出力に文言を表示する。

■フローチャート

■プログラム仕様

▼メイン処理

処理名メイン処理
処理概要作成したThreadクラスをインスタンスし、実行する。
同時に、標準出力へ10回、回数を表示する。
引数なし
戻り値なし
入力処理内容出力
作成したThreadクラスをインスタンスする。
Threadクラスを開始する。
■ループ処理:10回繰り返す
|クラス名、メソッド名、回数を出力する。・・・①

【標準出力】
クラス名
メソッド名
回数

 

▼Threadクラス

処理名runメソッド(オーバーライド)
処理概要標準出力へ10回、回数を表示する。
引数なし
戻り値なし
入力処理内容出力
■ループ処理:10回繰り返す
|クラス名、メソッド名、回数を出力する。・・・①

【標準出力】
クラス名
メソッド名
回数

■サンプルコード


// Threadクラスを継承
class MakeThread extends Thread{
	// runメソッドをオーバーライド
	public void run() {
		// 10回繰り返す
		for (int i = 0; i < 10; i++) {
			// 処理回数を出力
			System.out.println("MakeThreadクラスのrunメソッド:" + i );
		}
	}
}

public class ThreadSample {
	public static void main(String[] args) {
		// 作成したクラスをインスタンス
		MakeThread t = new MakeThread();
		// スレッドの開始
		t.start();
		
		// 10回繰り返す
		for (int i = 0; i < 10; i++) {
			// 処理回数を出力
			System.out.println("ThreadSampleクラスのmainメソッド:" + i );
		}
	}
}

■実行結果

・2つの処理が同時動いていることがわかる。

MakeThreadクラスのrunメソッド:0
ThreadSampleクラスのmainメソッド:0
ThreadSampleクラスのmainメソッド:1
MakeThreadクラスのrunメソッド:1
MakeThreadクラスのrunメソッド:2
MakeThreadクラスのrunメソッド:3
MakeThreadクラスのrunメソッド:4
MakeThreadクラスのrunメソッド:5
MakeThreadクラスのrunメソッド:6
ThreadSampleクラスのmainメソッド:2
ThreadSampleクラスのmainメソッド:3
ThreadSampleクラスのmainメソッド:4
ThreadSampleクラスのmainメソッド:5
ThreadSampleクラスのmainメソッド:6
ThreadSampleクラスのmainメソッド:7
ThreadSampleクラスのmainメソッド:8
ThreadSampleクラスのmainメソッド:9
MakeThreadクラスのrunメソッド:7
MakeThreadクラスのrunメソッド:8
MakeThreadクラスのrunメソッド:9
タイトルとURLをコピーしました