如何使用ImmediateDispatcher创建(异步)EventBus?

时间:2017-06-01 01:46:50

标签: java guava

我正在尝试使用AsyncEventBus创建ThreadPoolExecutor。我注意到AsyncEventBus被硬编码为始终使用LegacyAsyncDispatcherDispatcher.legacyAsync()状态的javadoc:

  

对于异步调度,通常应该优先考虑直接调度员。

但我无法找到任何方法实际创建AsyncEventBus Dispatcher.immediate()。然后EventBus被硬编码以使用Dispatcher.perThreadDispatchQueue()

如何创建ImmediateDispatcher并将其连接到EventBus

1 个答案:

答案 0 :(得分:0)

我认为你正在阅读这个包的来源。请注意Dispatcher is a package-private class,因此无法创建(甚至引用)任何类型Dispatcher的实例。因此Dispatcher.legacyAsync()上的文档适用于其他库维护者,而不适用于eventbus包的用户。

换句话说,只需使用AsyncEventBus并传入您希望它使用的执行程序。也许有一天,维护者会将AsyncEventBus的实现更改为不使用legacyAsync(),但这不会对用户造成任何影响。