当前位置: 首页 > news >正文

关于Netty框架中boss线程和work线程是如何协调工作的源码分析

服务端的boss线程是接收请求,work是处理对应每个连接的后续业务处理和IO操作。这块功能的处理机制源码分析如下:

(1)首先是用boss线程进行绑定端口并注册到从boss线程取出来的NioEventLoop对象上,然后NioEventLoop对象会在run方法里无限循环监听Selector的key。

(2)如果有客户端发起连接请求了,监听到连接成功或者读取事件,就会调用unsafe.read()方法,此时是是调用io.netty.channel.nio.AbstractNioMessageChannel.NioMessageUnsafe#read方法,此类对应的会调用实现类io.netty.channel.socket.nio.NioServerSocketChannel#doReadMessages方法。

(3)将接受到的客户端请求SocketChannel对象封装到msg消息里,然后执行pipeline.fireChannelRead方法进行管道传播处理,此时管道处理器里是放置了ServerBootstrapAcceptor方法来处理(此管道是服务端ServerBootstrap在初始化绑定监听时加入的)。

(4)ServerBootstrapAcceptor类的channelRead方法被触发调用,此方法会将接收到的客户端请求SocketChannel对象进行注册到子线程(即work线程池)childGroup.register(child),后续此条客户端的连接处理都有此子线程的NioEventLoop对象进行调用和处理,直到连接关闭。从而实现了boss线程接受请求到转给work线程进行处理具体的业务逻辑。

附加:

默认情况下,当创建NioEventLoopGroup的时候,如果不指定线程数量,则线程数量默认为CPU核心数*2,基本能符合常规的场景使用,跟可以实际场景来进调试work线程(例如CPU*3、CPU*4)。同时boss线程池,如果只绑定一个端口和ip,一个线程就够用,线程多了只是浪费资源没使用到,故常规的线程池创建时可以这么定义:

EventLoopGroup bossGroup = new NioEventLoopGroup(1); EventLoopGroup workGroup = new NioEventLoopGroup();


http://www.jsqmd.com/news/110316/

相关文章:

  • 2025年比较好的二手单板烘干机生产线/木材单板烘干机厂家最新用户好评榜 - 品牌宣传支持者
  • 49、Windows Server 2003 技术术语详解
  • VMware 使用记录
  • 【Jeecg OA实战】门户设计全新上线,支持PC与移动端自适应,提升协同办公效率
  • 孢子捕捉系统:集孢子采集、监测与分析功能于一体
  • 2025上海比较好的留学中介有哪些 - 留学品牌推荐官
  • 2025上海比较好的留学中介有哪些地方 - 留学品牌推荐官
  • 暴雨、台风来袭前,你的Agent真的设对预警阈值了吗?
  • (智能家居设备兼容终极方案)从协议解析到自动发现的完整链路设计
  • 19、分布式系统与资源泄漏问题的排查与解决
  • 20、资源泄漏检测与处理全解析
  • 杰理之SD卡IO设置【篇】
  • Kotaemon能否用于汽车保养提醒?物联网数据联动
  • 21、深入解析内存泄漏:原理、检测与避免策略
  • 16、Hyper-V 虚拟机配置与管理全解析
  • 2025年年终杭州管道疏通推荐:用户真实评价与深度评测报告 - 十大品牌推荐
  • 2025年企业起名机构联系方式汇总:全国主流服务机构官方联系通道与专业选择指南 - 十大品牌推荐
  • 桂林亲子游小团游服务哪家可靠?2025年广西亲子小团游推荐机 - 工业品牌热点
  • Kotaemon前端界面集成方案:打造可视化智能问答平台
  • 2025年快速火车宠物托运最新推荐榜 - 品牌宣传支持者
  • 22、资源泄漏与线程同步技术详解
  • 23、多线程同步问题的排查与解决
  • 25 年末远控软件终极横评:七款产品生产力对决全解析
  • 深入解析:Eclipse 创建 Java 接口
  • 2025年高性价比蓝牙音箱喇叭厂家推荐:适合KTV场所的品牌 - myqiye
  • 24、调试器扩展:原理、实现与应用
  • 2025年比较好的短视频拍摄公司推荐:视频拍摄公司哪家合作案 - 工业推荐榜
  • 信息服务上线渗透检测网络安全检查报告和解决方案4(网站风险等级评定标准、漏洞危害分级标准、漏洞安全建议)
  • Kotaemon能否用于儿童教育问答?适龄内容过滤机制
  • 计算机毕设java公益旧物捐赠系统的设计与实现 基于Java的公益旧物捐赠管理平台的设计与开发 Java环境下公益旧物捐赠信息系统的构建与实现