这里说的go的OS 线程不会卡,什么意思,是指os线程可以处理其他的程序还是处理其他的http请求,os线程是什么

news/2025/11/27 15:55:16/文章来源:https://www.cnblogs.com/maidongdong/p/19278279

非常好的问题!我们来彻底讲清楚 “Go 的 OS 线程不会卡” 到底是什么意思,包括:

  • 什么是 OS 线程(操作系统线程)
  • 它和 goroutine 是什么关系?
  • “不会卡”是指能处理其他程序?还是其他 HTTP 请求?
  • 为什么这很重要?

🔧 一、什么是 OS 线程(操作系统线程)?

✅ 简单定义:

OS 线程 是由 操作系统内核 创建和调度的执行单元。它是 CPU 调度的基本单位之一。

  • 每个 OS 线程有独立的栈、寄存器状态。
  • 多个线程可以属于同一个进程(共享内存空间)。
  • 操作系统负责在多个线程之间切换 CPU 时间片(比如每 10ms 切一次)。

🌰 举个现实例子:

你打开一个浏览器(一个进程),它可能有:

  • 1 个线程渲染页面,
  • 1 个线程下载图片,
  • 1 个线程处理 JavaScript。

这些都是 OS 线程,由 Windows / Linux / macOS 内核管理。


🧵 二、Go 的 goroutine 和 OS 线程的关系

Go 并不直接让每个 goroutine 对应一个 OS 线程(那样开销太大)。
而是采用 M:N 调度模型(GMP 模型)

角色说明
G (Goroutine) Go 语言层面的轻量级“协程”,几 KB 栈,可轻松创建百万个。
M (Machine) 对应一个 OS 线程,真正被 CPU 执行的实体。
P (Processor) Go 调度器的上下文,持有 G 的队列,M 必须绑定 P 才能运行 G。

⚙️ 关键机制:

  • 默认情况下,Go 程序启动时会创建 与 CPU 核心数相等的 OS 线程(M)
    • 比如你的电脑是 4 核 CPU → Go 默认启动 4 个 OS 线程。
  • 这些 OS 线程(M)会不断从 P 的队列中取出 goroutine(G)来执行。
  • 当某个 G 发起网络 I/O(如 http.Get)时:
    • Go 运行时发现这个 I/O 会阻塞,
    • 于是 把这个 G 挂起(parked)
    • 但 M(OS 线程)不会等它!
    • M 会立刻去执行 其他就绪的 G(比如另一个 HTTP 请求的处理逻辑)。

✅ 所以:“OS 线程不会卡” = 这个 OS 线程可以继续执行其他 goroutine,而不是傻等 I/O


🌐 三、“不会卡”到底指什么?能处理什么?

回答你的问题:

“是指 OS 线程可以处理其他的程序,还是处理其他的 HTTP 请求?”

答案是:可以处理同一个 Go 程序内的其他 goroutine(比如其他 HTTP 请求、定时任务、数据库查询等)

但它 不能直接处理“其他程序”(比如 Chrome 浏览器、MySQL),因为:

  • 每个程序(进程)有自己的地址空间;
  • OS 线程属于当前 Go 进程,只能运行本进程内的代码。

不过,操作系统会在 所有进程的线程之间调度 CPU,所以:

  • 当 Go 的 OS 线程在等 I/O 时(传统语言会卡住),
  • Go 不会让它等,而是让它去干别的活
  • 而其他程序(如 Chrome)也能获得 CPU 时间 —— 这是操作系统的功劳。

但 Go 的优势在于:在自己的进程内部,最大化利用了每一个 OS 线程


📊 四、对比:PHP vs Go 在高并发下的线程行为

假设你有 1000 个并发 HTTP 请求要发出去:

❌ PHP(传统 curl)

  • 每个请求通常由一个 PHP-FPM 进程/线程处理。
  • 每个 curl_exec() 都会让该线程 真正阻塞(OS 层面 sleep)。
  • 结果:需要 1000 个 OS 线程,每个都在等网络 → 内存爆炸、上下文切换开销巨大。

✅ Go(即使不用 go,但用 goroutine 就更明显)

  • 只需 4 个 OS 线程(假设 4 核 CPU)。
  • 创建 1000 个 goroutine 发起请求。
  • 当某个 goroutine 等网络时,Go 调度器把它挂起,OS 线程立刻去跑下一个 goroutine。
  • 所有 I/O 通过 epoll/kqueue(Linux/macOS)多路复用,一个线程监听成千上万个连接。
  • 结果:4 个 OS 线程高效处理 1000 个并发请求,内存占用低,性能高。

🎯 五、总结:一句话说清

“Go 的 OS 线程不会卡” 的意思是:
当某个 goroutine 在等待网络 I/O 时,Go 运行时会 自动把当前 OS 线程腾出来去执行其他 goroutine
而不是像 PHP 那样让整个 OS 线程傻等。
这使得 少量 OS 线程就能高效处理海量并发任务


💡 补充小知识:

  • Go 的网络库(net 包)底层使用了 非阻塞 socket + epoll(Linux)/kqueue(macOS)/IOCP(Windows)
  • 所以即使你写的是 resp, err := http.Get(...)(看起来同步),底层其实是 异步事件驱动 的。
  • 这就是 Go 的“魔法”:同步写法,异步性能

希望这次解释让你彻底明白了!如果还有疑问,欢迎继续追问 😊

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/978579.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nvm 是什么?

nvm 是什么? nvm(Node Version Manager) 是一个用于管理 Node.js 版本的命令行工具。它允许开发者在同一台机器上安装和切换多个版本的 Node.js,以便于在不同的项目中使用不同的 Node.js 版本。 在工作中,我们可能…

2025年专业靠谱口碑不错的国产操作系统公司推荐,高安全适配

在信创浪潮席卷关键行业的当下,一款自主可控、安全稳定的国产操作系统,是企业数字化转型的压舱石。面对市场上纷繁的国产操作系统选择,如何找到专业、靠谱且口碑不错的厂商?以下依据技术实力、行业覆盖与用户评价,…

2025年天津包装印刷服务公司排名:天津福森数码科技有限公司

在包装印刷行业,天津福森数码科技有限公司凭借15年深耕经验、全流程服务能力与数字化管理体系,成为京津冀地区企业选择包装解决方案的核心考量对象。面对福森数码好不好福森数码科技有限公司靠不靠谱的市场疑问,本文…

2025 年 11 月激振器厂家权威推荐榜:DF/HE/LE/ZDQ/RDQ/JR/BE/UE/KWD/G/ML/MV/DVE全系列激振器型号深度解析与选购指南

2025 年 11 月激振器厂家权威推荐榜:DF/HE/LE/ZDQ/RDQ/JR/BE/UE/KWD/G/ML/MV/DVE全系列激振器型号深度解析与选购指南 一、行业背景与发展现状 激振器作为工业振动设备的核心部件,在煤炭、矿山、冶金、电力等行业中发…

IPIDEA代理IP深度测评:构建智能体知识库的得力助手

本文分享了构建智能体知识库时遇到的挑战与解决方案。作者发现大模型原生知识库存在历史事件缺失、细节模糊等问题,转而选择维基百科作为优质数据源。针对维基百科访问受限和爬取效率问题,详细对比了多家代理IP服务商…

为什么软件公司很少用 Python 开发 Web - 绝不原创的飞龙

尽管Python拥有简洁语法与丰富生态,但许多软件公司在大型Web 项目中更偏向使用 Java、Go、Node.js,主要原因包括:性能瓶颈、并发处理能力差、部署与可维护性不优、招聘与团队协作困难、生态倾向数据科学。**其中,性…

2025年11月北京遗产继承律师服务全面评测与Top5推荐指南

摘要 随着人口老龄化加剧和家庭财富积累,北京遗产继承法律需求在2025年呈现显著增长趋势。本文基于第三方视角,综合行业数据、客户反馈和专业评测,为您推荐2025年11月北京地区遗产继承律师服务的前五名机构。排名仅…

2025英国最厉害三个留学机构

2025英国最厉害三个留学机构一、如何选择英国留学中介:2025年权威解析作为一名从业15年的国际教育规划师,我经常被学生和家长问及:“2025年申请英国留学,哪家中介最可靠?”根据《2025全球留学中介白皮书》数据显示…

Spring Web 中获取 HTTP 请求参数的方法

Spring Web 中获取 HTTP 请求参数的方法RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) req…

2025英国留学中介机构十强

2025英国留学中介机构十强一、如何选择英国留学中介机构许多学生在搜索“2025英国留学中介机构排名”时,最关心的是如何找到靠谱的服务机构。作为从业15年的英国留学申请规划导师,我经常被问到:中介的排名是否真实可…

2025年BIP系统性能大比拼,口碑最佳的是它,协同云/制造云/用友 T3/好生意/人力云/财务云/税务云/好业财BIP管理系统推荐排行榜

行业权威榜单发布,五大BIP系统深度解析 随着企业数智化转型进入深水区,商业创新平台(BIP)已成为推动企业高质量发展的核心引擎。基于公开市场数据、用户反馈及产品性能表现,我们特别推出2025年度BIP系统口碑排行榜…

2025 年油田压裂用支撑剂厂家最新推荐榜,技术创新与产品可靠性深度解析的优质企业名录油田采油用防砂树脂砂/油田压裂用自悬浮支撑剂/钻井用降滤失剂/球团压块粘结剂公司推荐

引言 压裂用支撑剂作为油田开发的核心材料,其性能稳定性直接决定压裂作业成功率与油气采收率。据国际石油工程协会(SPE)最新测评数据显示,全球优质支撑剂市场渗透率仅 37%,超过 60% 的低效开采案例与支撑剂抗压强…

2025液体水玻璃厂商哪家好TOP5权威推荐:源头直供避坑指

建筑、化工、冶金等领域对液体水玻璃、注浆水玻璃的需求逐年攀升,但市场上原料价格虚高、纯度不足致工程事故、规格不全频繁换商等痛点频发。据2024年行业调研,超60%企业曾因选错供应商延误工期,35%因产品纯度问题返…

2025年黑龙江省面试培训十大机构排行榜,雪恒白雪面试常见问

为帮助黑龙江省备考公务员、事业编等岗位的考生精准锁定适配自身需求的面试培训机构,避免因选择不当浪费时间与精力,我们从课程专项性、师资专注度、教研体系完善度、学员上岸率及退费协议透明度五大维度,对多家本土…

2025英国读研申请选什么中介好

2025英国读研申请选什么中介好一、2025年英国读研申请如何选择留学中介作为从业15年的国际教育规划师,我经常遇到学生询问:2025年申请英国研究生,该怎样挑选合适的留学中介?根据《2025留学中介行业白皮书》数据显示…

2025 年铝包木窗厂家最新推荐榜,技术实力与市场口碑深度解析 + 高性能与可靠性兼具的优质品牌

引言 在居住品质升级趋势下,铝包木窗凭借实木的温润质感与铝合金的坚固性能,成为高端家装与建筑项目的核心选择。本次榜单依托国际门窗协会(FENSA)性能测评数据、行业技术专利指数及全球消费者满意度调研,采用 “…

2025年纸板桶生产厂家权威推荐榜单:方纸桶/生产纸板桶/全纸桶源头厂家精选

纸板桶作为现代工业包装的重要组成部分,其质量与性能直接关系到化工、食品、医药等众多领域产品的储存与运输安全。随着各行业对绿色包装需求的增长,高强度、防潮、定制化的纸板桶市场需求持续上升。为帮助需求方精准…

基于FPGA的雷达信号处理设计工具包分享 - 实践

基于FPGA的雷达信号处理设计工具包分享 - 实践2025-11-27 15:40 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: …

2025年下半年工业大风扇/工业吊扇/工业大吊扇/工业风扇/工业大风扇工厂选择指南

随着工业节能与通风需求的不断提升,2025年下半年工业大风扇市场呈现快速增长态势。本文基于行业数据与用户反馈,整理出五家值得关注的工业大风扇制造企业,供读者参考。排名不分先后,每家企业在技术研发、产品性能及…

2025香港正规留学中介排名

2025香港正规留学中介排名一、如何选择香港留学中介作为从业15年的香港留学申请规划导师,我经常被学生和家长问及:“2025年香港正规留学中介该如何选择?”根据《2025年亚太地区留学中介口碑调研》显示,香港地区留学…