news 2026/6/23 9:48:35

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
关于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();


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 4:05:23

【金融合规 Agent 监控规则全解析】:手把手教你构建高效合规监控体系

第一章:金融合规 Agent 的监控规则在金融行业,自动化系统的广泛应用要求对交易行为、数据访问和操作流程实施严格的合规性监控。金融合规 Agent 作为核心监管组件,负责实时捕获系统事件、识别潜在违规行为,并触发相应的告警或阻断…

作者头像 李华
网站建设 2026/6/23 8:08:22

Kotaemon支持eBPF监控吗?底层性能洞察新技术

Kotaemon 支持 eBPF 监控吗?底层性能洞察新技术 在现代 AI 应用的生产环境中,一个智能对话系统早已不只是“你问我答”的简单交互。随着企业对准确率、可解释性和稳定性要求的不断提升,RAG(检索增强生成)架构已成为构建…

作者头像 李华
网站建设 2026/6/22 0:18:01

从0到1构建工业质检Agent(涵盖数据增强、模型压缩与边缘部署全流程)

第一章:工业质检Agent的缺陷识别在现代智能制造体系中,工业质检Agent正逐步取代传统人工检测,成为保障产品质量的核心技术组件。这类智能代理通过集成计算机视觉、深度学习与边缘计算能力,能够在毫秒级时间内完成对产品表面裂纹、…

作者头像 李华
网站建设 2026/6/21 2:42:22

数据库合集:含MySQL、Redis、Mongodb等常见数

【干货收藏】MySQLMongoDBRedis数据库完整学习教程,助你成为数据库专家 文章介绍了数据库作为系统健康和用户行为健康指标的重要性,重点分享了MySQL、MongoDB和Redis三种数据库的学习资料。MySQL部分包含13个章节,从基础到进阶全面覆盖&…

作者头像 李华
网站建设 2026/6/21 20:12:03

医疗AI诊断如何实现精准突破?:深度解析模型融合的5大核心技术

第一章:医疗AI诊断Agent模型融合的演进与挑战随着人工智能技术在医疗领域的深入应用,多Agent系统与深度学习模型的融合正成为提升诊断准确率的关键路径。传统单模型诊断系统受限于数据异构性与临床场景复杂性,难以全面捕捉疾病特征。而通过多…

作者头像 李华