我从一个项目中的“裸”网络开始。
我仍然会经历所有令人惊叹的javadoc,但有一点我没有得到。
到目前为止,我得到了:
有一个Boss线程启动引导程序并将服务器绑定到套接字端口对吗?工作线程(可能是其中许多线程)处理传入连接并创建正确的通道和管道吗?
但是我们有ExecutionHandler,它还可以将其他几个线程垃圾邮件对吗?我的观点是,如果我有10个工作线程,并且corepoolsize = 16的ExecutionHandler,这意味着我可能会在我的系统上以160个并发线程结束,因为负载很重?
对不起,这个问题让人感到愚蠢,但我只是试图从文档的这一部分开始理解。
干杯
答案 0 :(得分:10)
你对老板和工人的理解是正确的。
对于ExecutionHandler,它有点不同。 ExecutionHandler事件处理到一个额外的ThreadPool。这有助于确保您不“阻止”工作线程。 ExecutionHandler必须在不同的Channel之间共享,因此也在Workers之间共享。
因此,如果您的Worker数量为10且核心线程池大小为16,那么您将拥有26个线程+ boss线程。
希望这说清楚。