【发布时间】:2013-12-30 07:00:45
【问题描述】:
我正在研究观察者设计模式,并且有几个问题我没有明确的答案,所以如果有任何想法/想法,我将不胜感激。这专门针对多线程场景中的异步观察者回调:
什么是最好的设计方法,当它知道观察者可以在很短的时间间隔内接收到来自主题的多个事件通知时。因此,即使单个回调未完成,也很有可能获得多个通知。如何处理?如何有效地使用锁定?
当回调仍在执行时,如何处理取消订阅请求?在这种情况下如何避免死锁?
我想我们可以先开始讨论这个问题,相信随着答案的涌现,我们会有更多问题。感谢所有帮助!
【问题讨论】:
-
你没有提到你希望观察者如何处理通知 - 同时,一个接一个?处理线程安全吗?
-
处理通知的首选方式是并发。而且处理不是线程安全的。
-
爆发有多大?每秒几个/每秒几百个?
-
会有连续的流。可能是每秒 50-60 次左右。
-
那么看来您需要检查生产者-消费者模式,而不是观察者模式。顺便说一句,什么语言?
标签: multithreading observer-pattern