2013-11-01 67 views

回答

3

最明顯的區別是反應堆沒有橫切@Async註釋方法並隱式提交事件到Reactor。如果您在豆上使用反應堆註釋@Selector,那麼您會得到與@Async相同的事件:事件處理程序,而不是事件發佈商

就這麼說,在風格的事件通過DynamicReactorFactory發佈反應堆有一些支持。它使用接口而不是註釋,但概念相似。

關於使用其中一個或另一個的「優點」:它確實取決於您在應用程序中做了哪些其他事情,以及您是否在更廣義的意義上使用Reactor。反應堆不是爲了替代線程池而設計的。反應堆中的ThreadPoolExecutorDispatcher只使用下面的普通ThreadPoolExecutor。在這種情況下使用Reactor的好處來自反應堆中使用的優化事件發佈,而不是始終創建新的CallablesRunnables,以及使用反應堆的StreamPromise API來處理異步執行。

從API的角度來看,使用反應器而不是簡單的TaskExecutor作爲背景作業存在明顯的優勢。