Netty 中Channel、EventLoop、Thread、EventLoopGroup之间的关系

EventLoop定义了Netty的核心抽象,用于处理连接的生命周期中所发生的事件。

  1. 一个EventLoopGroup包含一个或者多个EventLoop。
  2. 一个EventLoop在它的生命周期内只和一个Thread绑定。
  3. 所有由EventLoop处理的I/O事件都将在它专有的Thread上被处理。
  4. 一个Channel在它的生命周期内只注册于一个EventLoop。
  5. 一个EventLoop可能会被分配给一个或多个Channel。

在这种设计中,一个给定Channel的I/O操作都是由相同的Thread执行的,实际上消除了对于同步的需要。

就是说:

Channel和EventLoop是多对一

EventLoop和EventLoopgroup是多对一

那么EventLoop和Thread是不是一对一呢?

猜你喜欢

转载自blog.csdn.net/shengfengwuying/article/details/83411495