news 2026/6/10 22:41:23

协程觉醒:从同步世界到异步宇宙的跃迁

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
协程觉醒:从同步世界到异步宇宙的跃迁

协程觉醒:从同步世界到异步宇宙的跃迁

开篇:那个改变我编程思维的午后

三年前的一个下午,我盯着生产环境的监控面板,服务器 CPU 使用率只有 15%,但接口响应时间却飙到了 8 秒。那是一个典型的 I/O 密集型场景:系统需要同时调用 20 个第三方 API,每个接口平均耗时 400ms。

当时的代码是这样的:

importrequestsimporttime=time.time()foruser_idinuser_ids:response=requests.get(f'https://api.example.com/users/{user_id}')results.append(response.json())print(f"耗时:{time.time()-start:.2f}秒")returnresults# 获取 20 个用户数据fetch_user_data(range(1,21))# 输出: 耗时: 8.23秒

CPU 闲着,线程却在无聊地等待网络响应。那一刻我意识到:我需要协程,一种让程序"主动放弃控制权"的魔法。

根据 Python 软件基金会 2024 年的调查,58% 的 Python 开发者已经在生产环境使用 asyncio,而在 Web 服务和数据处理领域,这个比例高达 78%。今天,让我们深入协程的本质,理解为什么它被称为"现代 Python 的并发基石"。

一、从操作系统说起:并发的三种武器

1.1 多进程:重装坦克

frommultiprocessingimportProcessimportosdefworker(name):print(f"进程{name}(PID:{os.getpid()}) 正在工作")if__name__=='__main__':processes=[Process(target=worker,args=(f'Worker-{i}',))foriinrange(3)]forpinprocesses:p.start()forpinprocesses:p.join()# 输出:# 进程 Worker-0 (PID: 12345) 正在工作# 进程 Worker-1 (PID: 12346) 正在工作# 进程 Worker-2 (PID: 12347) 正在工作

优点:真正的并行,绕过 GIL
缺点:内存开销大(每个进程 ~10MB),进程间通信复杂

1.2 多线程:轻骑兵

importthreadingimporttimedefio_task(name):print(f"线程{name}开始")time.sleep(2)# 模拟 I/O 操作print(f"线程{name}完成")threads=[threading.Thread(target=io_task,args=(f'Thread-{i}',))foriinrange(3)]start=time.time()fortinthreads:t.start()fortinthreads:t.join()print(f"总耗时:{time.time()-start:.2f}秒")# 约 2 秒

优点:共享内存,适合 I/O 密集型
缺点:受 GIL 限制,CPU 密集型无效,存在竞态条件

1.3 协程:魔法师

importasyncioasyncdefio_task(name):print(f"协程{name}开始")awaitasyncio.sleep(2)# 非阻塞等待print(f"协程{name}完成")returnnameasyncdefmain():start=time.time()tasks=[io_task(f'Coro-{i}')foriinrange(3)]results=awaitasyncio.gather(*tasks)print(f"总耗时:{time.time()-start:.2f}秒")# 约 2 秒returnresults asyncio.run(main(
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 12:26:49

YouTube重拳清退“AI垃圾”:累计删除播放量超470亿的低质内容

Android Police 昨日报道,YouTube 平台于近期展开了一次针对低质量 AI 生成内容的清理行动。自去年 11 月以来,该平台已关停或清理了数十个活跃发布“AI 垃圾”内容的频道,其累计播放量超过 47 亿次。 “AI 垃圾”(AI slop&#…

作者头像 李华
网站建设 2026/6/10 12:30:00

第15篇 | 安全审计与日志分析:数字世界的“黑匣子”与“预言家”

《网络安全的攻防启示录》 第二篇章:固守之道 第15篇 “当一次精心策划的网络攻击在深夜悄然发生时,唯一能完整复现这场‘数字悬案’、并指引你找到‘真凶’的,不是某个尖端的防御设备,而是那些沉默记录着一切的日志。” 01 从飞机黑匣子说起:我们为什么需要记录一切? …

作者头像 李华
网站建设 2026/6/10 10:30:30

uniapp微信小程序php python的旅游主题开发app

文章目录开发框架选择核心功能模块数据交互设计性能优化建议安全与合规扩展性考虑系统设计与实现的思路主要技术与实现手段源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!开发框架选择 Uniapp作为跨平台开发框架,支持微信小程…

作者头像 李华
网站建设 2026/6/10 14:32:16

uniapp微信小程序php python的校园生活服务 跑腿,平台

文章目录 校园生活服务跑腿平台概述技术架构与功能模块平台特色与优势应用场景示例 系统设计与实现的思路主要技术与实现手段源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 校园生活服务跑腿平台概述 基于UniApp、微信小程序、PHP和Pyt…

作者头像 李华
网站建设 2026/6/10 19:04:16

2026 年 1 月 30 日 AI + 通信 + 安全前沿信息集成

今日 AI 前沿日报一、综合 AI 前沿速览核心动态SpaceX 与 xAI 合并传闻引爆太空 AI 赛道:马斯克旗下两家公司正洽谈合并,计划打造 "太空 AI 帝国",整合星盾保密通信与 Grok 大模型军事应用能力,目标拿下五角大楼 AI 安全…

作者头像 李华
网站建设 2026/6/10 10:36:53

Vue Transition/TransitionGroup 核心笔记

文章目录 核心作用一、 单元素/组件过渡二、 列表过渡三、默认过渡类名(核心)四、自定义过渡类名(避冲突)五、CSS核心写法六、核心区别(必记) 核心作用 Vue内置无需注册的过渡组件,为元素显隐/…

作者头像 李华