EventExecutor 和 EventExecutorGroup
如上为EventExecutor和EventExecutorGroup的类体系的结构;
EventExecutorGroup继承了jdk的ScheduledExecutorService了,从字面来说它表示的是一组
EventExecutor,你可以通过next方法获取下一个EventExecutor,同时它额外提供了一种所谓“优雅”关闭的能力,
Future<?> shutdownGracefully(long quietPeriod, long timeout, TimeUnit unit);
unit是quietPeriod, timeout的时间单位,
quietPeriod的意思是说,从你调用shutdownGracefully方法之后,如果过了quietPeriod,也没有任务在提交了,那么这个时候,就shutdown,
如果在quietPeriod之内,有任务再提交,那么就需要重新在开始计时,
timeout这个字段的意思是说只要过了timeout这么多时间了,那么这个时候就立即shutdown,而不去管quietPeriod的规则了;
EventExecutor提供了一系列方便的方法去查看线程是否运行在event loop中,除此之外它还继承了EventExecutorGroup,这点不太好理解;
EventLoopGroup 和 EventLoop
EventLoopGroup继承于EventExecutorGroup,它是一个特殊的EventExecutorGroup,它是一组EventLoop可以注册Channel;
EventLoop,用于处理一个已经注册的Channel的所有的i/o操作,同时由于它继承了
OrderedEventExecutor,则表示它会串行的执行,提交进来的任务;另外它也继承了EventLoopGroup这点和EventExecutor继承EventExecutorGroup一样不是太好理解;
OrderedEventExecutor接口,是一个标记性的接口,它表示实现了这个接口的类,会串行的执行,提交进来的任务;