news 2026/3/21 22:59:10

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

作者头像

张小明

前端开发工程师

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/3/13 8:56:33

周六福2026焕新发布会盛大举行,“见宝非遗”系列产品首发

“焕新之境见宝非遗”周六福2026焕新发布会在哈尔滨盛大举行。发布会上,品牌揭晓全新视觉形象,并全球首发“见宝非遗”系列产品,周六福港股回应消费者对高品质、高内涵珠宝首饰的期待。 1月5日,“焕新之境见宝非遗”周六福2026焕新…

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

拓竹破百亿、捐一亿!陶冶:成绩属于每一位3D打印“竹子”

拓竹,还招人吗?最近,拓竹向员工母校捐赠1亿元的消息刷爆全网。各大媒体争相报道,被不少人称为2026年最热闹的一次“年终奖”。很明显,这件事已经“破圈”了,影响力早已不只局限在3D打印行业。据了解&#x…

作者头像 李华
网站建设 2026/3/20 15:56:54

uniapp微信小程序php python的汽车维修预约管理系统

文章目录系统概述技术架构核心功能创新点应用价值系统设计与实现的思路主要技术与实现手段源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!系统概述 汽车维修预约管理系统基于Uniapp框架开发,支持微信小程序端与后台管理。系统…

作者头像 李华
网站建设 2026/3/17 5:31:54

好写作AI:引注生成智能化中的学术溯源准确性研究

引注之痛:从格式烦恼到溯源危机“参考文献格式又错了!”“这句话的出处到底是哪篇文献?怎么找不到了?”对于撰写毕业论文的大学生而言,引注管理往往是耗时最长、最易出错的环节之一。传统的手动管理方式不仅效率低下&a…

作者头像 李华