相关疑难解决方法(0)

是增加工作线程的数量还是在 Netty 中创建自己的线程池更好?

假设我们的 Netty 服务器 (4.1.32) 响应 HTTP 调用。我们进一步假设它必须在回答传入请求之前执行某些阻塞操作,例如,它必须执行传出调用(此处使用不同的库)来加载外部数据。

具有持久连接的NioEventLoopGroup的线程数讨论

如果我的 messageReceived 方法阻塞或需要很长时间才能完成,会发生什么情况?

@Maksym 回应

您应该避免在处理程序中使用线程阻塞操作。

很明显,工作线程的数量是有限的。因此,有效地阻塞所有可用的工作线程意味着 Netty 将对任何进一步的请求进行排队,直到工作线程变得可用。

另一方面,按照建议将阻塞操作移至我自己的线程上,将对线程切换产生性能影响,而反过来,可用硬件将阻塞的是我自己的线程池。恕我直言,使用我自己的线程池只会增加另一层复杂性,但不会提高性能。相反,我宁愿增加工作线程的最大数量,并让 Netty 完成对请求进行排队的工作。

这里建议的做法是什么?

java multithreading netty

2
推荐指数
1
解决办法
2289
查看次数

标签 统计

java ×1

multithreading ×1

netty ×1