スレッドが中断されたかどうかを知るために、このソリューションを見つけました。
public class OurThread extends Thread(){
private volatile boolean stop = false;
public void run(){
while (!stop) {
//Do your actions
}
}
}
しかし、私の run メソッドは 1 回しか実行されないので、while ループの中に入れても意味がありません。私が見つけた別のアプローチは、 Thread.isInterrupted() フラグをチェックしてからスレッドを終了することです。私の run() メソッドはかなり長いので、この状態を何度もチェックする必要があり、コードが汚れています。
これを 4 つの異なるプロセスに適用する必要があるため、よりシンプルでクリーンなソリューションを見つけようとしています。次のようなものがあるかどうかを期待していました:
try{//my code}
catch(interrumption)
問題は、future.cancel() を使用してスレッドが中断されるため、run() コード内で中断がスローされず、それもできないことです。
なにか提案を?スレッドがキャンセルされた場合、今ではコード間で何度もチェックしています。ありがとう :)