NioEventLoopGroup的自定义执行程序是危险的吗?

时间:2018-01-04 13:46:56

标签: java multithreading netty

我想在我的服务器引导程序的NioEventLoopGroup中重用我的工作线程的线程池。

NioEventLoopGroup interface提供使用自定义执行程序。我很担心使用它,因为默认执行程序是special implementation

if (executor == null) {
    executor = new ThreadPerTaskExecutor(this.newDefaultThreadFactory());
}

网络人通常没有理由不编写实现。这就是为什么我不确定使用简单的线程池是否有任何缺点。

2 个答案:

答案 0 :(得分:2)

一般情况下使用自定义Executor并不危险,但我认为对于您的用例,您应该共享相同的EventLoopGroup实例。

答案 1 :(得分:1)

自定义Executor对于与Netty范围之外的实现的另一部分共享线程池很有用。相信诺曼说的话:这并不危险。

Project Reactor支持自定义Executor的{​​{3}}。因此,您可以创建一个并在Reactor和Netty之间共享它,以最大程度地利用线程(不要使池未被充分利用,而另一个则被过度利用)。请记住,以这种方式共享执行程序仅适用于短暂,无阻塞的任务。