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

TNPosted by

【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 スレッドには伝搬しない。
※スレッドは強制終了する。スタックとレースも表示されない。
・複数のスレッドが同時に変数を使用するとデータが破壊される恐れがある。

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA