netty message received 是多线程吗

 我来答
匿名用户
2016-09-14
展开全部
一般情况下,netty 做server,接收请求并处理时,会在messageReceived()阻塞,为了达到多线程处理,我使用了ExecutionHandler,但发现,
在NioWorker的read(SelectionKey k)方法中

if (readBytes > 0) {
bb.flip();

final ChannelBufferFactory bufferFactory =
channel.getConfig().getBufferFactory();
final ChannelBuffer buffer = bufferFactory.getBuffer(readBytes);
buffer.setBytes(0, bb);
buffer.writerIndex(readBytes);

recvBufferPool.release(bb);

// Update the predictor.
predictor.previousReceiveBufferSize(readBytes);

// Fire the event.
fireMessageReceived(channel, buffer);
} else {
recvBufferPool.release(bb);
}

if (ret < 0 || failure) {
k.cancel(); // Some JDK implementations run into an infinite loop without this.
close(channel, succeededFuture(channel));
return false;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式