我想了解 netty 工作线程是如何工作的。根据代码,对于每个新请求,我们都会获得 nextwoker() 任何一个工作线程并将其分配给处理客户端事件。所以根据我的理解,单个线程将能够处理来自不同客户端的不同请求。
我在这里有一个问题,对于客户端(通道/套接字),进入该特定通道的所有事件都是由同一个线程处理还是不同线程可以处理它们。我的假设是单线程处理所有事件(不包括未来事件)。但根据 MemoryAwareThreadPoolExecutor 的文档,他们告诉通道,不同的线程处理不同的事件。
为了验证这一点,我使用单个客户端和工作线程 ppol 编写了一个小程序,它有 50 个工作线程,但是当我在消息接收事件中保持睡眠时,我的客户端等待下一个消息接收调用。这确认为每个客户端分配了单个线程。请说清楚 ...