【マルチスレッド】マルチスレッドの終了方法
複数の処理を同時に実行できるマルチスレッド。
今回はマルチスレッドで一度走らせた処理を終了する方法について記述する。
マルチスレッドを利用する時は、下記のようにThreadクラスを継承したクラスの中に、runメソッドを記述する。
class multiThread extends Thread{ public void run(){ //ここにマルチスレッドで実行したい処理を書く } }
このrunメソッドを実行することにより、マルチスレッドでプログラムが実行される。
その実行しているプログラムを停止するために、あらかじめThreadクラスの中にstopメソッドが用意されているが、このstopメソッドは利用が推奨されていない。
どうもプログラムを強制的に終了するため、捜査中のデータに不整合が生じる恐れがあるそうだ。
そこで以下のように、runメソッドの中でwhileループを走らせ、stopメソッドでそのwhileループの引数を変更させるのが一般的である。
class multiThread extends Thread{ private boolean threadFlag = true; public void run(){ while(threadFlag){ //ここにマルチスレッドで実行したい処理を書く } } public void stopThread(){ threadFlag = false; } }