2

netty 代理示例对服务器和客户端 nio 套接字工厂都使用Executors.newCachedThreadPoolbossExecutor一个workerExecutor
是否有一个原因?

4

1 回答 1

1

回顾:老板线程用于接受连接,而工作线程则执行处理来自通道的传入/传出缓冲区的实际工作。

Boss 线程通常不是很忙。此外,netty 每个端口只需要一个线程,而不是整个池。但是您可能会决定例如拥有一个线程池和一个线程到服务器 10 个端口。所有端口将共享并竞争同一个 Boss 线程。

回到你的问题:老板和工作线程使用相同的池是个好主意吗?这并不可怕,你让你的设计和维护变得更简单了。但是,由于池中的所有线程都可能被工作人员占用并且没有线程留给老板,因此存在延迟接受新连接的风险。不要认为这是一个大问题。

于 2013-01-13T21:29:13.740 回答