2013-01-13 37 views
2

netty代理示例对服务器和客户端nio套接字工厂的bossExecutorworkerExecutor使用单个Executors.newCachedThreadPool
这是有原因吗?要使用多少个执行程序?

回答

1

回顾:老板线程用于接受连接而工作线程做从信道处理入局/出局缓冲器的实际工作。

老板线程通常不是很忙。而且netty只需要每个端口一个线程,而不是整个池。但是你可以决定有一个线程池与一个线程到服务器10端口。所有港口将共享和竞争同一个单独的老板线程。

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