flag
実行の合間に停止し、特定の設定または発生を待つ必要があるバッキングメソッドがありevent
ます。
現在、私はただpolling
にいapplication-scoped variable
ます。それが他の要求によって設定された場合、待機メソッドは続行する可能性があります。
しかしpolling
、適切な方法ですか、それとももっと良い方法がありますか?
flag
実行の合間に停止し、特定の設定または発生を待つ必要があるバッキングメソッドがありevent
ます。
現在、私はただpolling
にいapplication-scoped variable
ます。それが他の要求によって設定された場合、待機メソッドは続行する可能性があります。
しかしpolling
、適切な方法ですか、それとももっと良い方法がありますか?
うまくいけば、私はこの権利を理解しました。ポーリングはCPUサイクルを浪費するため、非効率的です。オブジェクトをシグナルとして使用できます。
Object signal = new Object();
volatile boolean shouldWait = true;
待機中の方法:
// ...
synchronized(signal) {
while(shouldWait) {
signal.wait();
}
}
シグナリングコード内:
synchronized(signal) {
shouldWait = false;
signal.notify();
}
最初のサーブレットがObservableを実装するオブジェクトのオブザーバーになるオブザーバーパターンを使用することをお勧めします。何かが発生すると、2番目のサーブレットがオブザーバブルを更新し、setChanged()メソッドを呼び出して、オブザーバー(この場合は最初のサーブレット)に通知します。