EventLoopGroup 的实例化
首先,我们先纵览一下EventLoopGroup 的类结构图,如下图所示:
在前面的章节中我们已经简单地介绍了一下NioEventLoopGroup 初始化的基本过程,这里我们再回顾一下时序图:
基本步骤如下:
1、EventLoopGroup(其实是MultithreadEventExecutorGroup)内部维护一个类为EventExecutor children 数组,其大小是nThreads,这样就初始化了一个线程池。
2、如果我们在实例化NioEventLoopGroup 时,如果指定线程池大小,则nThreads 就是指定的值,否则是CPU核数* 2。
3、在MultithreadEventExecutorGroup 中会调用newChild()抽象方法来初始化children 数组.
4、抽象方法newChild()实际是在NioEventLoopGroup 中实现的,由它返回一个NioEventLoop 实例。
5、初始化NioEventLoop 主要属性:
provider:在NioEventLoopGroup 构造器中通过SelectorProvider 的provider()方法获取SelectorProvider。
selector:在NioEventLoop 构造器中调用selector = provider.openSelector()方法获取Selector 对象。
EventLoopGroup 的实例化相关推荐
- 56. Netty源代码分析-服务器初始化 NioEventLoopGroup实例化
一. 代码下载 Netty代码下载和编译参考前一篇Netty文章 https://blog.51cto.com/483181/2112163 二. 服务器代码分析 2.1 服务器代码编写 一般Nett ...
- EventLoopGroup 与Reactor 关联
我们介绍了三种Reactor 的线程模型, 那么它们和NioEventLoopGroup 又有什么关系呢? 其实, 不同的设置NioEventLoopGroup 的方式就对应了不同的Reactor 的 ...
- Netty学习笔记(三)EventLoopGroup开篇
使用Netty都需要定义EventLoopGroup,也就是线程池 前面讲过在客户端只需要一个EventLoopGroup就够了,而在服务端就需要两个Group--bossGroup和workerGr ...
- List 为什么可以实例化ArrayList
昨天我带的一个同事问我List 为什么可以实例化ArrayList,刚开始一下萌了(带了快 2个月了) 比如List list = new ArrayList(); List 是一个接口, 接口使用的 ...
- Java 实例化的理解
理解实例化就是弄清楚类和对象的关系 可以参考我之前写的类和对象: https://huxiaomu.blog.csdn.net/article/details/89495621 类:是对象定义属性和行 ...
- C++ 笔记(24)— STL map 类(map实例化、插入、查找、删除)
1. STL 映射类简介 map 和 multimap 是键-值对容器,支持根据键进行查找,区别在于,后者能够存储重复的键,而前者只能存储唯一的键. 为了实现快速查找, STL map 和 multi ...
- C++ 笔记(23)— STL vector 类(实例化 vector、末尾插入、指定位置插入、数组方式访问元素、指针方式访问元素、删除元素、大小与容量区别)
1. vector 特点 vector 是一个模板类,提供了动态数组的通用功能,具有如下特点: 在数组末尾添加元素所需的时间是固定的,即在末尾插入元素的所需时间不随数组大小而异,在末尾删除元素也如此: ...
- Go 学习笔记(14)— 结构体定义、实例化、初始化、匿名结构体、结构体访问、结构体作为形参、结构体指针
Go 语言中没有 "类" 的概念,也不支持 "类" 的继承等面向对象的概念.Go 语言不仅认为结构体能拥有方法,且每种自定义类型也可以拥有自己的方法. 1. 结 ...
- python类直接调用不实例化_未实例化类的python调用方法
嗨,我在python3.5.2代码中有一个类:class Foo(object): __description__ = "Description of Foo" def get_d ...
最新文章
- C语言实现数据文件怎么找,急求如何将下列C语言程序数据存储到文件中?
- list::splice函数的用法与参数解释
- 7.6 yum更换国内源 7.7 yum下载rpm包 7.8/7.9 源码包安装
- Linux命令之 users -- 显示当前登录的用户
- 号角响起!百度AI开发者实战营第二季教你用AI实现商业梦想
- 湖南工程学院毕业论文计算机,bbs毕业设计
- Django 找不到模版报错 django.template.exceptions.TemplateDoesNotExist: index.html
- react typescript 父组件调用子组件
- paip.输入法编程--英文ati化By音标原理与中文atiEn处理流程 python 代码为例
- 小米蓝牙音响驱动_拆解报告:小米无线充蓝牙音箱
- Visual Odometry
- ios 裁剪框大小_ios – 如何将视频裁剪为特定大小?
- python虚拟变量回归_虚拟变量提升多元线性回归模型精度(附Python代码与数据)...
- [原] 写作及开发环境设置
- 397. 整数替换【我亦无他唯手熟尔】
- 计算机教师评语中职,中职期末评语
- 工具_在线生成安卓证书
- c#控件listview
- 解决 squid The basicauthenticator helpers are crashing too rapidly, need help
- RTX51 Tiny用户指南(一)