SYSTEM DEVELOPMENT

STUDY GROUP

Java スレッドと並列処理 備忘録

【Java の命令の実行原則】
・JVM は命令を1個づつ順番に実行
【スレッド】
・複数の処理を同時実行
・Thread クラスの run() をオーバーライド
・Thread クラスの start() メソッドでスレッドを開始
例)import java.util.*;
class HelloThread extends Thread {
public void run() {
System.out.println(“Hello Thread”);
}
}
public class Main3 {
public static void main( String[] args ) {
System.out.println( “Please Enter Something” );
Thread t = new HelloThread();
t.start();
new Scanner( System.in ).nextLine();
}
}
・run() が終わると自動的にスレッドが消滅するので、終了、停止などの指示は必要なし
・Thread クラスにはスレッドを強制的に停止する stop() メソッドがあるが、JVM内部に問題が起こる可能性があるため、使用すべきでない。
※suspend()、destroy() メソッドも同じ
・実行中のスレッドが存在すると JVM は終了しない
・join():並列に実行されているスレッドの終了を待つ
・「write once, run anywhere」:スレッドは例外
・スレッド内で発生した例外は、main スレッドには伝搬しない。
※スレッドは強制終了する。スタックとレースも表示されない。
・複数のスレッドが同時に変数を使用するとデータが破壊される恐れがある。

menu