Netty第二章 2020 3-2——Netty源码之Server端Boss线程组的启动

本文详细剖析了Netty服务器启动时Boss线程组的启动流程,包括用户线程部分、Boss线程部分和Boss线程组的线程数量。在启动过程中,Boss线程主要负责处理任务,而任务的添加和执行涉及到多个步骤和衍生任务。Boss线程的数量由bind的端口数决定,即使配置的线程数大于1,也只会启动与端口数相等的Boss线程。
摘要由CSDN通过智能技术生成

以主从Reactor为例,Server在启动的时候,会创建Boss和Worker两个EventLoopGroup,这两个group会作为参数传入到ServerBootstrap的group方法中。

1.Boss组线程的启动:

1) 用户线程部分:

AbsttractBootstrap.bind->绑定端口

AbsttractBootstrap.initAndRegister->初始化channel并注册channel

MultithreadEventLoopGroup.register

SingleThreadEventLoop.register

AbstractChannel.register

SingleThreadEventExecutor.execute

SingleThreadEventExecutor.startThread->这个只会在初始化的时候start一次,因为inEventLoop是false。

SingleThreadEventExecutor.doStartThread

ThreadPerTaskExecutor.execute->4.1.X新加入的方法,将用工厂创建线程并启动执行任务的动作封装了起来,也是真正启动Boss线程的地方,之前都是用户线程。

2) Boss线程部分:

SingleThreadEventExecutor.this.run

NioEventLoop.run->这里是一个死循环,在ratio不是100的时候,会一直跑任务,主要工作有两个:

NioEventLoop.processSelectedKeys 和

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值