【问题标题】:ExecutionHandler and Boss threadExecutionHandler 和 Boss 线程
【发布时间】:2012-05-03 14:16:37
【问题描述】:

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

我仍在浏览所有令人惊叹的 javadocs,但有一点我没有明白。

到目前为止我得到了什么:

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

但是我们有 ExecutionHandler,它也可以向其他几个线程发送垃圾邮件,对吧?我的意思是,如果我有 10 个工作线程和 corepoolsize=16 的 ExecutionHandler,这意味着我的系统上可能会在负载非常重的情况下以 160 个并发线程结束?

抱歉,这个问题感觉很愚蠢,但我只是想弄清楚文档中的这一部分。

干杯

【问题讨论】:

    标签: netty


    【解决方案1】:

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

    对于 ExecutionHandler 它有点不同。 ExecutionHandler 将事件处理交给一个额外的ThreadPool。这有助于确保您不会“阻塞”工作线程。 ExecutionHandler 必须在不同的 Channel 之间共享,也必须在 Worker 之间共享。

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

    希望这说明清楚。

    【讨论】:

    • 非常感谢,它真的很清楚。感谢这个项目 :) 我们今天在 java 中拥有的最酷的东西可能是建立在 netty 之上的。干杯人
    猜你喜欢
    • 2016-01-01
    • 1970-01-01
    • 2012-04-11
    • 1970-01-01
    • 1970-01-01
    • 2016-03-20
    • 2013-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多