EventLoop和EventLoopGroup
# EventLoop和EventLoopGroup
EventLoop负责处理连接中的事件, 和EvenvLoop有关的几个概念是:Channel, EventLoopGroup。
- 一个EventLoopGroup包含一个或多个EventLoop。
- 一个EventLoop对应于一个线程,所有EventLoop处理的I/O事件都在这个线程中完成。
- 一个Channel对应唯一个一个EventLoop。
- 一个EventLoop可以对应多个Channel。
对于基于Netty的网络服务,Client端启动需要一个EventLoopGroup, Server端启动需要两个EventLoopGroup, 因为Server端需要两种Channel, 一种是ServerChannel, 只有一个,负责接受连接,另一种是用于处理连接的一组Channel。
EventLoop继承了concurrent包里的 ScheduledExecutorService,这使得它可以接受Callable或者Runnable并执行。EventLoop中的parent()方法返回包含这个EventLoop的EventLoopGroup
编辑 (opens new window)
上次更新: 2022/05/22, 00:01:01