今天读 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 日 via Android
感觉说的不是一个东西,书上线程池是说 accpet 和 handle 可能会在多个线程。至于 accpt 和 handle 各是多少个线程,就看代码怎么写了。可以是一个也可以是多个。
|
2
teek 2019 年 10 月 30 日
“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 月 2 日
boosGroup 确实是一个独立的线程池,只不过一般会使用一个线程罢了,因为用一个线程来接收客户端连接足以。但是不排除极端情况,所以设计成线程池更好。
可以去看看 MultithreadEventLoopGroup 的构造方法 |