情况是这样的(看下面的EDIT2):
我有一个方法(方法 A),它将一个接一个地循环真正的组件,如果它们符合将触发上述问题正在处理的事件(我的小方法链式反应)的标准,则将它们删除。
我有一个 AtomicBoolean ,它在该链执行时为真,在完成或不执行时变为假,方法 A 可以访问。
现在,我知道方法 A 将在哪里触发事件(它会在删除对象时触发它),所以我可以从方法 A 手动将 AtomicBoolean 设置为 true。
现在我需要做的就是暂停该方法,直到 AtomicBoolean 变为 false。
我不能使用 PropertyChangeListener 因为我可以把它放在方法的中间并用它来暂停它,我必须把我的方法分解成更小的方法,这是我做不到的,
如果 Lock 类是可以在这里工作的东西,我看不出如何。
基本上,我需要这个:
while (AtomicBoolean)
{
Thread.sleep(0);
}
但以更智能的形式编写,因此不会折磨处理器。