Nett源码剖析(1)NioEventloopGroup的创建2021SC@SDUSC

本文探讨Netty中的NioEventLoopGroup,它在事件执行器组中的角色。通过类结构图,作者分析了NioEventLoopGroup的newChild方法和new NioEventLoopGroup()的初始化过程,强调了其在多线程和事件执行器中的关键作用。
摘要由CSDN通过智能技术生成

2021SC@SDUSC

NioEventloopGroup

类结构图:在这里插入图片描述
很遗憾我的idea不是旗舰版,所以未能找到我现在正在研究的netty类图结构,只能先用这个看下
在这里插入图片描述
既然是叫事件执行器组,那就是和多个事件执行器工作相关的功能
在这里插入图片描述
注册和next
在这里插入图片描述
这里我的理解是多线程和事件执行器嘛,比较关键的是这个newChild,上边的也只是分析了解即可,这个new NioEventLoopGroup();话有一个返回值是NioEventLoop,大致也是组和个体的关系

在这里插入图片描述
可以看到在这个简单的服务器搭建的代码中,首先就是初始化了NioEventLoopGroup,首先可以ctrl跟进查看如何初始化

new NioEventLoopGroup();

为了方便,把接下来进入的方法和个人解析都放到代码块里。

public NioEventLoopGroup() {
   
        this(0);
    }
//一开始没什么好说的,不断地指向下一个方法,并且添加了新的参数,都是常见好理解的参数
//这里是线程,是指之后要创建的线程的数量,这个时候进入的是无参方法的路径,所以默认是0。
//如果是有参的构造方法,那这里就不是0了
public NioEventLoopGroup(int nThreads) {
   
        this(nThreads, (Executor) null);
    }
//executor:线程执行器,默认是 null
//这个属性的值会在后面创建 NioEventLoop 时,进行初始化。
//用户可以自定义executor,如果用户自定义实现,那么此时 executor 就不为 null,后面就也会再初始化。
public NioEventLoopGroup(int nThreads, Executor executor) {
   
        this(nThreads, executor, SelectorProvider.provider());
    }
//SelectorProvider.provider():通过它创建出一个 SelectorProvider 对象
//这个对象的作用就是创建多路复用器 Selector 和服务端 channel。
public NioEventLoopGroup(
            int nThreads, Executor executor, final SelectorProvider selectorProvider) {
   
        this(nThreads, executor, selectorProvider, DefaultSelectStrategyFactory.INSTANCE);
    }
//通过DefaultSelectStrategyFactory.INSTANCE 创建选择策略工厂,具体看后边。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值