Java Netty 4中是否可以同时读取?

Java Netty 4中是否可以同时读取?,java,multithreading,netty,Java,Multithreading,Netty,发件人: Netty永远不会同时调用ChannelHandler的方法,除非ChannelHandler带有@Sharable注释。这与处理程序方法的类型无关—入站、出站或生命周期事件处理程序方法 我对此没有异议。但是,我的问题是,在管道的不同阶段,是否可能同时从同一通道读取/处理两条不同的消息 例如,考虑下面的流水线( ChannelInboundHandler < /代码> s): +-----------+ |处理程序2| +-----------+ ^ | +-----------+ |

发件人:

Netty永远不会同时调用
ChannelHandler
的方法,除非
ChannelHandler
带有
@Sharable
注释。这与处理程序方法的类型无关—入站、出站或生命周期事件处理程序方法

我对此没有异议。但是,我的问题是,在管道的不同阶段,是否可能同时从同一通道读取/处理两条不同的消息

例如,考虑下面的流水线(<代码> ChannelInboundHandler < /代码> s):

+-----------+ |处理程序2| +-----------+ ^ | +-----------+ |处理程序1| +-----------+ ^ | +-----------+ |I/O读取| +-----------+
我知道,最多只有一个线程可以从
处理程序1
调用方法,除非它是
可共享的。但是,一个线程是否可以在处理程序2中处理消息,而另一个线程是否可以在处理程序1中处理同一通道的消息?或者仅当当前消息到达管道末端时才选择通道?

只有在传入EventExecutorGroup的情况下,将其中一个ChannelHandler添加到管道时,才可能选择此通道。如果不使用一个线程,则所有内容都将由EventLoop和一个线程处理

+-----------+ | Handler 2 | +-----------+ ^ | +-----------+ | Handler 1 | +-----------+ ^ | +-----------+ | I/O read | +-----------+