【发布时间】:2013-09-10 03:13:26
【问题描述】:
我将在这里纯粹谈论概念。
我有一个类,它附有一个监听器,它执行某事。 我有一整套从该类构造的对象
我还有一个静态方法foo() 访问该数组,然后执行其他操作。
做其他事情会触发监听器,如果我不暂停其他事情直到 某事完成了,代码不起作用。 foo() 知道监听器何时被触发。
此外,侦听器具有直接调用由同一类构造的另一个对象上的侦听器的能力。 foo() 不知道这是否会发生,或者发生多少次。
那么如何强制foo() 等待侦听器执行,然后,如果侦听器没有触发连锁反应,则从中断处继续,或者等待任何触发的侦听器完成执行?
【问题讨论】:
-
wait for any triggered listener to finish executing- 这意味着触发的侦听器不是作为方法调用执行,而是以某种并行方式执行 - 作为线程、线程池上的 Runnable/Callable 或其他方式。但是你没有描述听众的性质。如果我们不知道该等待什么,我们怎么能说如何等待?
标签: java concurrency