V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
MoHen9
V2EX  ›  问与答

关于 Netty 的一个问题

  •  
  •   MoHen9 · 2019-10-29 18:48:01 +08:00 · 1307 次点击
    这是一个创建于 1612 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天读 netty 权威指南第二版,在高效的 reactor 线程模型一小节,有段“服务端用于接收客户端连接的不再是 1 个单独 NIO 线程,而是一个独立的 NIO 线程池。”

    https://ftp.bmp.ovh/imgs/2019/10/9b78598558e65783.png

    但我之前读过的一篇博客中却是这样说的:

    https://ftp.bmp.ovh/imgs/2019/10/af312400ad30f838.png

    到底怎么理解?

    博客地址:aHR0cHMlM0EvL3NlZ21lbnRmYXVsdC5jb20vYS8xMTkwMDAwMDA3NDAzODczJTIzYXJ0aWNsZUhlYWRlcjI=​

    3 条回复    2019-12-02 19:16:44 +08:00
    lhx2008
        1
    lhx2008  
       2019-10-29 19:00:40 +08:00 via Android
    感觉说的不是一个东西,书上线程池是说 accpet 和 handle 可能会在多个线程。至于 accpt 和 handle 各是多少个线程,就看代码怎么写了。可以是一个也可以是多个。
    teek
        2
    teek  
       2019-10-30 00:26:51 +08:00
    “It only makes sense to use more than 1 when you bind multiple times (to different ports) or re-use it between different ServerBootStrap. “ github.com/netty/netty/issues/8925
    mazai
        3
    mazai  
       2019-12-02 19:16:44 +08:00
    boosGroup 确实是一个独立的线程池,只不过一般会使用一个线程罢了,因为用一个线程来接收客户端连接足以。但是不排除极端情况,所以设计成线程池更好。

    可以去看看 MultithreadEventLoopGroup 的构造方法
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3040 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 14:55 · PVG 22:55 · LAX 07:55 · JFK 10:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.