今天读 netty 权威指南第二版,在高效的 reactor 线程模型一小节,有段“服务端用于接收客户端连接的不再是 1 个单独 NIO 线程,而是一个独立的 NIO 线程池。”
https://ftp.bmp.ovh/imgs/2019/10/9b78598558e65783.png
但我之前读过的一篇博客中却是这样说的:
https://ftp.bmp.ovh/imgs/2019/10/af312400ad30f838.png
到底怎么理解?
博客地址:aHR0cHMlM0EvL3NlZ21lbnRmYXVsdC5jb20vYS8xMTkwMDAwMDA3NDAzODczJTIzYXJ0aWNsZUhlYWRlcjI=
1
lhx2008 2019-10-29 19:00:40 +08:00 via Android
感觉说的不是一个东西,书上线程池是说 accpet 和 handle 可能会在多个线程。至于 accpt 和 handle 各是多少个线程,就看代码怎么写了。可以是一个也可以是多个。
|
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
|
3
mazai 2019-12-02 19:16:44 +08:00
boosGroup 确实是一个独立的线程池,只不过一般会使用一个线程罢了,因为用一个线程来接收客户端连接足以。但是不排除极端情况,所以设计成线程池更好。
可以去看看 MultithreadEventLoopGroup 的构造方法 |