码迷,mamicode.com
首页 > Web开发 > 详细

源码解析-Netty整体架构思路

时间:2020-12-31 12:00:12      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:分析   ios   pipe   inf   lazy   new   创建   源码解析   info   

 

技术图片

 

画了张图,包含了netty的大部分组件,一些说明在图中标出便于理解

在我的理解看来可以将netty大体分为左右两部分

左半部分可以理解为线程池系列 用来执行具体任务,右半部分可以理解为核心组件系列 包括selector,channel,pipeline及handel,后面会逐个介绍

 

 

根据Netty官方提供的example包下的第一个例子,只连接不处理 来分析一下左右两部分分别是什么

技术图片

 

 

 以客户端来分析

技术图片

 

 

核心点几步:

1. 创建一个线程池组group;  //可以说几乎完成了左半部分线程池系列的全部初始化

2. 创建一个客户端Bootstrap;

3. 加入线程池组,

4. 加入socketChannel,     //设置了channelFactory 用来创建NioSocketChannel

5. 定义了ChannelInitializer,加入了自定义的handel;

6. 异步connect;       //这一步做的事比较多,new一个channel,初始化一个pipeline,将hendel全部加入到pipeline。从group中拿一个loop 将channel注入到loop中,启动loop线程,将channel注册到selector上

7. 关闭channel;

8. 关闭线程池组group;

 

左半部分线程池系列几乎都是由第1步创建线程池组完成的,当然还有第4步启动了loop的线程

右半部分核心组件初始化由4,5,6步完成。

 

源码解析-Netty整体架构思路

标签:分析   ios   pipe   inf   lazy   new   创建   源码解析   info   

原文地址:https://www.cnblogs.com/ttaall/p/14192596.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!