等待Java中的多个条件

时间:2011-05-04 05:55:14

标签: java multithreading

我希望线程等到两个Condition中的任何一个发出信号。 有可能吗?

假设线程正在处理传入的数据包,而用户可能会通过更改某些状态来中断。

当数据包到达时发出一个条件信号,另一个条件在状态发生变化时发出信号。

我认为对两个事件使用一个Condition是不合适的,因为这会在监视状态的其他线程中引起大量不必要的唤醒。

2 个答案:

答案 0 :(得分:3)

您可以添加由传入数据包和用户状态更改发出信号的第三个条件吗?我认为不可能在多种情况下等待。

答案 1 :(得分:0)

使用信号量,有2个许可证,让你的等待物品获得那些2,并让你的事件释放这些许可证,每次1个,直到2个回来?