news 2026/4/18 3:41:55

关于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/4/18 1:29:42

Kotaemon监控告警体系搭建:Prometheus+Grafana集成教程

Kotaemon监控告警体系搭建:PrometheusGrafana集成教程 在企业级AI系统日益复杂的今天,一个智能对话代理可能每分钟处理成百上千次用户请求。当某天运维突然发现响应延迟飙升、知识检索频繁超时,却没有工具能快速定位是模型推理拖慢了整体流程…

作者头像 李华
网站建设 2026/4/16 15:40:57

Kotaemon物联网设备数据接入:实时状态问答

Kotaemon物联网设备数据接入:实时状态问答 在现代智能工厂的控制室里,一位工程师轻声问道:“最近有没有设备出现过热?” 话音刚落,系统便回应:“设备 T001 当前温度为 85C,已持续超过阈值 15 分…

作者头像 李华
网站建设 2026/4/12 2:30:56

【MCP DP-420图Agent深度解析】:掌握核心文档精髓的5大关键点

第一章:MCP DP-420图Agent概述MCP DP-420图Agent是一种专为工业自动化与数据采集系统设计的智能代理模块,广泛应用于制造执行系统(MES)与可编程逻辑控制器(PLC)之间的通信桥接。该代理具备高效的数据解析能…

作者头像 李华
网站建设 2026/4/16 9:08:09

【生物信息AI Agent进阶指南】:解锁复杂疾病关联分析的3个关键技术突破

第一章:生物信息AI Agent的核心架构与演进在生物信息学与人工智能深度融合的背景下,AI Agent 正逐步成为基因组分析、蛋白质结构预测和药物发现等任务的核心引擎。这类智能体不仅需要处理高维度、异构的生物数据,还需具备自主决策与持续学习能…

作者头像 李华
网站建设 2026/4/9 19:32:58

【生物制药Agent研发新突破】:揭秘分子模拟技术如何加速新药发现

第一章:生物制药Agent与分子模拟的融合新范式 随着人工智能与计算生物学的深度耦合,生物制药领域正迎来一场由智能Agent驱动的范式变革。传统药物发现依赖大规模试错实验,周期长、成本高。而今,基于深度学习的智能Agent与高精度分…

作者头像 李华
网站建设 2026/4/16 20:49:52

Redis 入门看这一篇就够了:安装与基础实战

1. 什么是 Redis? Redis 全称 Remote Dictionary Server,是一款基于内存的高性能 Key-Value(键值对) 数据库。 高性能: 数据存储在内存中,读写速度可达 10^5 次/秒以上。 丰富的数据结构: 支持…

作者头像 李华