0
実行しているRunnableを作成しようとしていますが、Runnableが行っている作業を一時停止または再開するために、外部から変数を変更する必要があります。Runnable内の変数を更新するにはどうすればよいですか?
これは私のRunnableを実装したものです:私は、アクティブの「揮発性」修飾子を試してみたが、それでもそれはないでしょう
Thread thread = new Thread(myRunnable);
thread.run();
myRunnable.setActive(false); //This does not work!!!
//The boolean remains true inside myRunnable.
:私は呼んで私のメインクラスで
private boolean active = true;
public void run() {
while (true) {
if (active) { //Need to modify this bool from outside
//Do Something
}
}
}
public void setActive(boolean newActive){
this.active = newActive;
}
更新。どんなアイデアも大歓迎です。
ありがとうございました。それを解決した。待機するロック機能はどのように実装しますか? – RoadkillMike
たとえば、[条件](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Condition.html)を使用します。 –