実行の合間にメソッドを「一時停止」し、外部でトリガーしてこのメソッドの実行を継続するにはどうすればよいですか?
スレッドはサーブレットであり、executeAndWait
メソッドはボタンをクリックすることで開始されます。SessionScoped
次に、変数のポーリングを実行します。この変数の状態が変化した場合(たとえば、trueに)、ポーリング/待機メソッドは続行する必要があります。
私は最初にObserver
パターンについてです。しかし、これを使用すると、メソッドの実行をトリガーできます。しかし、私はスリープ/待機してメソッドの続行をトリガーする必要があります。
「グローバル」変数へのポーリングとは別に、これを他にどのように行うことができますか。
class MyThread {
@Inject
MyBean bean;
doExecuteAndWait() {
//this waits for the var to turn into "true" state
while(!bean.isVarValid()) {
Thread.sleep(1000);
}
//continue execution if somevar is set to true externally
}
}
class MySignal {
@Inject
MyBean bean;
//this triggers the continuation of the method from class above
toggleVar() {
bean.setVarValid(true);
}
}
@SessionScoped
class MyBean() {
varValid = false;
isVarValid() {
return varValid;
}
setVarValid(Boolean status) {
this.varValid = status;
}
}