问题是这样的Netty4启动一个http的server,handler线程池是使用Netty提供的
EventExecutorGroup group=new DefaultEventExecutorGroup(3);
假设启动三个线程
ch.pipeline().addLast(group,new HttpServerInboundHandler());
这时候HttpServerInboundHandler开两个业务接口,其中一个模拟长时间占用,
比如url是/checkTaskStatus时执行System.in.read();
此时客户端再调用另一个接口/checkTaskResult 是及时返回并关闭会话;
1、此时先调用/checkTaskStatus,客户端会一直等待回复,这里达到预期
2、新开的客户端再调用/checkTaskResult,出现的问题是50%几率无返回一直卡住;
我的问题是既然线程池用来处理任务,有个一直被占用,那还有2个线程可以处理新的任务,为什么还会被卡住呢。。。。这样线程池还有什么意义
不知道你这个问题是否已经解决, 如果还没有解决的话: