我的学习思路就是不断地总结画图理解,最终做到贯通哈
总结一下我画的netty模型
展开分析
1. netty抽象出两组线程池,BossGroup和workerGroup,BossGroup负责处理TCP连接,workerGroup处理TCP读写,类型都是NIOEventLoopGroup,每个group都是一个事件循环组,这个组中有很多事件循环,每个循环都是一个NioEventLoop
2. NioEventLoop是一个不断循环的处理任务的线程,每个NioeventLoop都一个selector,用于监听绑定在自己身上的socket通讯
3. 每个bossGroup的线程boss NioeventLoop循环的三个步骤
一、轮询accept事件
二、处理accept事件,与client建立连接,生成NiosocketChannel,并且将他注册到某个worker的NioEventLoop上的selector
三、处理任务队列的任务,就是runAllTasks()