ExecutionHandler和Boss线程

时间:2012-05-03 00:19:13

标签: netty

我从一个项目中的“裸”网络开始。

我仍然会经历所有令人惊叹的javadoc,但有一点我没有得到。

到目前为止,我得到了:

有一个Boss线程启动引导程序并将服务器绑定到套接字端口对吗?工作线程(可能是其中许多线程)处理传入连接并创建正确的通道和管道吗?

但是我们有ExecutionHandler,它还可以将其他几个线程垃圾邮件对吗?我的观点是,如果我有10个工作线程,并且corepoolsize = 16的ExecutionHandler,这意味着我可能会在我的系统上以160个并发线程结束,因为负载很重?

对不起,这个问题让人感到愚蠢,但我只是试图从文档的这一部分开始理解。

干杯

1 个答案:

答案 0 :(得分:10)

你对老板和工人的理解是正确的。

对于ExecutionHandler,它有点不同。 ExecutionHandler事件处理到一个额外的ThreadPool。这有助于确保您不“阻止”工作线程。 ExecutionHandler必须在不同的Channel之间共享,因此也在Workers之间共享。

因此,如果您的Worker数量为10且核心线程池大小为16,那么您将拥有26个线程+ boss线程。

希望这说清楚。