java - Nettys GlobalEventExecuter 是否利用当前线程?

标签 java multithreading netty

根据 Nettys 文档 GlobalEventExecutor是一个

Single-thread singleton EventExecutor

这意味着它使用一个线程并且只有一个实例。我在新线程中使用 GlobalEventExecutor。该类是否始终使用当前线程,还是使用一个线程来处理所有事情?

如果第二个是正确的,则意味着在线程池中使用 GlobalEventExecutor 并没有真正意义。我会使用线程池来代替我的 Promise,但我必须将其设置为全局的,就像 GlobalEventExecutor 一样。

我该如何解决这个问题。

最佳答案

GlobalEventExecutor 是一个基于单线程的事件执行器。

该类将start a new thread提交新任务时是否需要。该线程不与执行代码的线程共享。

即使您从多个类调用此全局实例,它也只会在后台使用单个线程来执行任务。

当该类检测到一段时间内没有任务提交时,它会关闭其内部线程,并在再次需要时重新创建它。该时间默认为 1 秒。

This can be verified by looking at the source of GlobalEventExecutor .

关于java - Nettys GlobalEventExecuter 是否利用当前线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36738977/

相关文章:

java - 引起原因:java.net.UnknownHostException:host.docker.internal

java - Java中工厂类的用途

c++ - 用于简单包含在大型项目中的单线程共享指针

multithreading - 核心数据 : warning: Unable to load class named

multithreading - lua表线程安全吗?

Java Netty UDT 交会不起作用

java - 参差不齐的双二维数组的平均值

java - 使用默认方法与抽象类的接口(interface),动机是什么?

netty - 跨多个服务器和客户端 Bootstrap 重用 NioWorkerPool

java - Netty IO 从类外部写入服务器