news 2026/5/26 20:52:43

关于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/5/25 19:38:45

施予天源堂:以新质生产力唤醒中医药养护新活力

当新质生产力成为传统产业升级的核心动能,施予天源堂立足中医药传承创新,将现代科技与千年养护智慧深度融合,通过全链条技术革新与公益科普,让古老中医药以更科学、便捷、普惠的形态融入现代生活,诠释了传统产业高质量…

作者头像 李华
网站建设 2026/5/25 11:53:08

为什么顶尖团队都在升级MCP AI-102?,揭秘新版模型的3大稀缺优势

第一章:MCP AI-102 模型升级的行业背景与战略意义随着人工智能技术在各行业的深度渗透,大规模认知预训练模型(MCP)已成为推动企业智能化转型的核心引擎。MCP AI-102 的推出并非孤立的技术迭代,而是应对当前算力需求激增…

作者头像 李华
网站建设 2026/5/21 21:04:15

Java线程安全和同步

目录 1.场景 2.编写程序 3.解决办法:线程同步 1)synchronized同步代码块 2)synchronized同步方法 3)两个方式的对比 4)写一个锁对象 4.使用场景 使用Lock的场景 使用synchronized的场景 1.场景 小明和小红是一对夫妻,他们有一个共同的账户&am…

作者头像 李华
网站建设 2026/5/20 14:13:42

工业质检Agent如何突破瓶颈?3种前沿算法在复杂场景下的应用对比

第一章:工业质检 Agent 的缺陷识别在现代智能制造体系中,工业质检 Agent 扮演着关键角色,其核心任务是通过自动化手段实现对生产线产品的实时缺陷检测。这类 Agent 通常集成计算机视觉、深度学习与边缘计算技术,能够在毫秒级时间内…

作者头像 李华
网站建设 2026/5/20 14:13:48

【自动驾驶Agent地图更新终极指南】:揭秘高精地图实时演进核心技术

第一章:自动驾驶Agent地图更新概述自动驾驶系统依赖高精度地图实现环境感知、路径规划与决策控制。随着道路基础设施的动态变化,静态地图已无法满足实时性需求,因此引入自动驾驶Agent进行地图更新成为关键技术方向。这些Agent通过车载传感器采…

作者头像 李华
网站建设 2026/5/22 5:30:06

【云边协同架构设计必读】:掌握这7种任务分配策略,性能提升300%

第一章:云边协同Agent任务分配的核心挑战在构建云边协同系统时,Agent任务分配面临多重技术挑战。由于边缘节点资源受限、网络延迟波动大以及任务类型多样化,传统的集中式调度策略难以满足实时性与能效的双重需求。动态资源感知的难度 边缘设备…

作者头像 李华