综述:
new NioEventLoopGroup) 线程组,默认 2*cpu
对应
new NioEventLoopGroup) [线程组,默认 2*cpu]
对应
new ThreadPerTaskExecutor() [线程创建器]
对应
for() {newChild() } [构造 NioEventLoop]
对应
chooserFactory.newChooser() [线程选择器]
创建服务端Channel
初始化服务端Channel
注册selector
端口绑定
下面看源码:
bind 对应样例的
下面来看这个流程,首先
newSocket() [通过jdk来创建底层jdk channel]
NioServerSocketChannelConfig0 [tcp 参数配置类]
AbstractNioChannel()
configureBlocking(false) [阻塞模式]
AbstractChannel() [创建 id,unsafe,pipeline]
newchild()
isPowerOfTwo() 判断是否为 2 的幂
循环取数组索引下标,& 比取模性能更高
NioEventLoop启动触发器
NioEventLoop启动
避免空轮询的再次发生
processSelectedKey 执行流程