■スレッド
スレッドとは、「道筋」や「糸」のような意味である。
プログラムの処理を実行する際、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
コメント