前言
本人所有的源码分析都是基于代码一行行的debug追踪、直到自己对于整个流程都有大概的思路之后,才会再一次一步一步的去给代码上打注释。这样不可避免的出现有些理解不到位、理解偏差、大量的代码对于阅读性不太友好、甚至有的会直接看懵比。。 但是对于源码分析这一块,我实在找不到更好的办法去处理,网上也有很多优秀博主,他们的分析比较生动简洁、但是对于源码这一块,我暂时还没发现有比较好的借鉴的例子…
流程图
经过本人一系列的研究发现,这一块代码量特别庞大,并且流程复杂,上代码很容易走着走着就看懵了。所以直接搞一份流程图,也就看着图一乐。
看完之后,本人的直接感觉就是netty就是线程池!!! 也就是将一系列的需求都可以放入线程池的任务队列中,由workerGroup内置的线程池去处理这些任务。
还有假如一瞬间有五个客户端发送了数据, 那么netty是在一个循环中去处理这五个channel,此时是在一个线程中处理,也就是处理完第一个,再处理第二个! 但是我们可以将第一个channel处理逻辑放入任务队列中。这样就可以使用netty的线程池了。
放个流程图压压惊