Java Netty-工作线程池和工作线程池之间的关系
上下文是Netty 3.5.xJava Netty-工作线程池和工作线程池之间的关系,java,multithreading,netty,Java,Multithreading,Netty,上下文是Netty 3.5.x 创建NioserverSocketCannelFactory或NioClientSocketCannelFactory时,NioWorker的数量与工作线程池中的线程数量之间的关系是什么?Netty的设计是否规定线程池中的可用线程数应至少与NioWorker数相同?如果线程池中的线程数少于NioWorkers数,会发生什么情况?是,关系为1:1。因此,您需要至少拥有与NioWorkers相同数量的线程。如果您的数量较少,则在创建*SocketCannelFacto
创建NioserverSocketCannelFactory或NioClientSocketCannelFactory时,NioWorker的数量与工作线程池中的线程数量之间的关系是什么?Netty的设计是否规定线程池中的可用线程数应至少与NioWorker数相同?如果线程池中的线程数少于NioWorkers数,会发生什么情况?是,关系为1:1。因此,您需要至少拥有与NioWorkers相同数量的线程。如果您的数量较少,则在创建*SocketCannelFactory时会抛出一个异常just hang,具体取决于Executor实现。谢谢您的回答。根据我的经验,如果线程池中的线程数少于NioWorkers的数量,那么客户端或服务器有时会在内部很长一段时间内无法完成连接请求,那么由boss线程提交的注册任务似乎永远不会被接收。我想知道Netty不允许创建线程池中最大线程数小于NioWorkers数的ChannelFactory对象是否有意义。目前,如果使用只接收2个执行器的构造函数,例如NioClientSocketChannelFactoryExecutor,Executor-默认情况下,Netty将创建两倍于处理器数量的NioWorker,如果worker Executor无法提供至少那么多线程,则会出现间歇性连接故障。另外,如果关联真的是1:1,那么这可能是值得在JavaDoc中明确的。