引:谈到Netty就避免不了去谈Reactor模式,不懂的同学同自行面向搜索引擎。在Netty中的Reactor线程的具体实现就是NioEventLoop。
NioEventLoop创建
我们先总结这个过程的流程:
- 设置EventLoop数量
- 创建线程创建器
- 创建NioEventLoop(配置selector和taskQueue等参数)
- 创建线程选择器
我们回到上一个例子的:
1 | EventLoopGroup bossGroup = new NioEventLoopGroup(1); // 用于处理serverChannel |
我们进入到NioEventLoopGroup的构造方法:
1 | // step 1 |
创建完成!!!
NioEventLoop启动
它的第一次启动还是要回到前一篇博文的这一个步骤中:
1 | // step 1 AbstractBootstrap |
启动完毕了!!!
NioEventLoop执行
1 | // step 1 这里就是真的reactor线程真正开始干活的地方 |
执行完毕!!!
总结
虽然还是有很多细节没有调试到,但是大概的流程应该都走了一遍,希望多调试,然后才会深感EventLoop的吊!!