在ChannelHandler的channelRead()方法中应当尽快释放handler以让当前的NIO线程尽快处理下一个请求,那么channelRead()应当只进行数据的解码处理,然后将解码后的数据“发送”给业务逻辑类进行处理。那么问题是,业务逻辑代码应该放在哪里:1. 使用JDK自带的线程池,在channelRead()方法中调用pool.submit()提交任务2. 使用 ctx.executor().submit() 方法提交任务还有一个问题,当业务方法完成处理后需要返回HTTP响应,但是Netty不能在非NIO线程中使用ChannelHandlerContext, 那么业务方法如何将结果返回给NIO线程从而向客户端返回响应呢?
添加回答
举报
0/150
提交
取消