如何把channel注册到workerGroup里面。
一个线程一个NioEventLoop,一个select,多个Nio(Server)SocketChannel。
每个Nio(Server)SocketChannel,一个pipeLine,一个TaskQueue,多个handler放在pipline里面。
主从reactor,主react只是监听连接,有连接来了,就封装为一个NioSocketChannel,注册到从react一个线程的selector上面。
从reactor的一个线程开始轮询监听读写消息。把handler放在pipline里面。一个线程有很多的handler。
如何找源码:
--------------------------------------------------------------------------------------------------------------------------------------------------------
这个是16说明有读的操作的。
这段代码的作用:
看下这个做了什么事情。
可以看到包装为nioSocketChannel加入到buffer里面去了。
继续执行:
一直追进入这个方法:
这里把channel注册到worker线程池中。
发到哪一个会有算法的
总结:
----------------------------------------95-------------------------------------------
继续,看下register。
一直进去可知,在执行器数组返回一个执行器。
进入register
进入真正的register0
-----------------------------------------96-------------------------------------------
梳理:
-----------------------------------------97-------------------------------------------
pipline剖析代码:https://www.cnblogs.com/stateis0/p/9062148.html
关系表:
接口设计:
可以看到有很多方法:
---
看下一个方法:
---
------------------------------------------98-------------------------------------------
ChannelHandler源码分析
-------------------------------------------99-------------------------------------------
channelHandlerContext
看下:
pipline是在这里面产生的。
有了
流程:
---
-------------------------------------------100-----------------------------------------