【发布时间】:2013-02-26 13:22:58
【问题描述】:
除了wait/notify,还有更简洁的线程间事件通知方式吗?
例如。如果我想让Thread X 通知ThreadY 发生了某些事情,在并发包中是否有比在wait/notify 之上构建它更好的构造?
我的要求很简单:
ThreadB 期望事件发生。 ThreadA 负责检测此类更改。当发生变化时ThreadA 通知ThreadB
更新:
我需要执行 Observer/Observable 模式,但我希望 observable 在通过循环通知观察者时尽可能少地阻塞。
IE。观察者将是单独的线程,并且可观察到的火变化将“通知”它们以尽可能少地阻塞
【问题讨论】:
-
您能否详细说明您的要求?你在
java.util.concurrent中看到了什么(例如CyclicBarrier、CountdownLatch?你需要传递信息,还是只传递通知本身? -
如何更好? java有信号量,IIRC。
-
@JonSkeet:请参阅更新。您提到的那些构造是关于一起启动线程等,对吗?
-
@MartinJames:我的意思是如果有比等待/通知更高级别的构造,我想使用它
-
没有什么比为此等待/通知更好的了。去做就对了。很简单。
标签: java multithreading events concurrency java.util.concurrent