我想在我的服务器引导程序的NioEventLoopGroup中重用我的工作线程的线程池。
NioEventLoopGroup interface提供使用自定义执行程序。我很担心使用它,因为默认执行程序是special implementation:
if (executor == null) {
executor = new ThreadPerTaskExecutor(this.newDefaultThreadFactory());
}
网络人通常没有理由不编写实现。这就是为什么我不确定使用简单的线程池是否有任何缺点。
答案 0 :(得分:2)
一般情况下使用自定义Executor
并不危险,但我认为对于您的用例,您应该共享相同的EventLoopGroup
实例。
答案 1 :(得分:1)
自定义Executor
对于与Netty范围之外的实现的另一部分共享线程池很有用。相信诺曼说的话:这并不危险。
Project Reactor支持自定义Executor
的{{3}}。因此,您可以创建一个并在Reactor和Netty之间共享它,以最大程度地利用线程(不要使池未被充分利用,而另一个则被过度利用)。请记住,以这种方式共享执行程序仅适用于短暂,无阻塞的任务。