2016-07-15 3 views
0

Netty 4.1.2.FinalNetty: execute CompletableFuture Rückruf in I/O-Thread-Pool

Die wiki sagt

Unabhängig von seiner Transport- und Art, Netty der alle vorgelagerten (dh inbound) Ereignisse müssen von dem Thread ausgelöst werden, der I/O für den Kanal (dh I/O-Thread) ausführt. Alle Downstream-Ereignisse (d. H. Abgehende Ereignisse) können von jedem Thread einschließlich der I/O-Thread- und Nicht-I/O- -Threads ausgelöst werden ( ). Alle Upstream-Ereignisse, die als Nebeneffekt von ausgelöst werden, müssen jedoch vom I/O-Thread ausgelöst werden. (ZB Wenn Channel.close() löst channelDisconnected, channelUnbound und channelClosed, müssen sie von der I/O-Thread ausgelöst werden.

Jetzt habe ich eine CompletableFuture, ich möchte den Rückruf lassen ausgeführt werden in netty I/O-Thread.

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

Die thenAcceptAsync akzeptiert einen executor Parameter, wie executor Parameter schicken?

Antwort

3

der EventLoop selbst ist ein Executor, so können Sie verwenden:

channel.eventLoop() und verwenden Sie es als Argument.