【问题标题】:Netty : execute CompletableFuture callback in I/O thread poolNetty : 在 I/O 线程池中执行 CompletableFuture 回调
【发布时间】:2016-11-18 15:10:30
【问题描述】:

Netty 4.1.2.Final

wiki

无论其传输方式和类型如何,Netty 都是上游(即入站) 必须从为通道执行 I/O 的线程触发事件 (即 I/O 线程)。所有下游(即出站)事件都可以 从任何线程触发,包括 I/O 线程和非 I/O 线程。但是,任何作为副作用触发的上游事件 必须从 I/O 线程触发下游事件。 (例如,如果 Channel.close() 触发 channelDisconnected、channelUnbound 和 channelClosed,它们必须由 I/O 线程触发。

现在我有一个CompletableFuture,我想让回调在netty的I/O线程中执行。

future.thenAcceptAsync((Map<String, String> map) -> {
  // ...
});

thenAcceptAsync接受executor参数,如何发送executor参数?

【问题讨论】:

    标签: netty


    【解决方案1】:

    EventLoop 本身就是一个 Executor,所以你可以使用:

    channel.eventLoop() 并将其用作参数。

    【讨论】:

      猜你喜欢
      • 2013-08-09
      • 1970-01-01
      • 2013-04-28
      • 2011-08-02
      • 2018-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-15
      相关资源
      最近更新 更多