状況は次のとおりです(EDIT2の下を見てください):
上記の質問が扱っているイベント(私の小さなメソッド連鎖反応)をトリガーする基準を満たす場合、真のコンポーネントを1つずつ循環させ、それらを削除するメソッド(メソッドA)があります。
私は AtomicBoolean を持っています。これはチェーンの実行中に true になり、チェーンが完了するか実行されていないときに false になり、メソッド A がアクセスできます。
これで、メソッド A がイベントをトリガーする正確な場所 (オブジェクトを削除するときにトリガーされる場所) がわかったので、メソッド A から手動で AtomicBoolean を true に設定できます。
あとは、AtomicBoolean が false になるまでメソッドを一時停止するだけです。
PropertyChangeListener は、メソッドの途中で使用して一時停止できるため、使用できません。メソッドをより小さなものに分割する必要がありますが、これはできません。
Lock クラスがここで機能する可能性がある場合、その方法を確認できません。
基本的に、これが必要なもの:
while (AtomicBoolean)
{
Thread.sleep(0);
}
しかし、よりスマートな形式で書かれているため、プロセッサを苦しめることはありません.