2つのスレッドA
とがありB
、両方とも実行されているとします。突然B
終了することを決定したためA
、A
できるだけ早く終了する必要があります。A
すぐに終了したくないのですが、安定した状態になったら終了します。
単純な解決策は、共有変数を使用することterminatePlease
ですA
。これは、安定した状態に達するたびにチェックします。
コードのプロトタイプは次のようになります。
class A extends Thread {
boolean terminatePlease;
public void run() {
while (true) {
if (terminatePlease)
return;
doUninterruptableTasks();
}
}
}
そのような状況を処理するための他の並行性パターンはありますか?