完成本章学习后,你将能够:
| 场景 | 推荐方案 |
| I/O密集型,大量连接 | asyncio |
| I/O密集型,少量任务 | 多线程 |
| CPU密集型 | 多进程 |
| 简单并行 | concurrent.futures |
import asyncio import random async def producer(queue, n): for i in range(n): item = f"item_{i}" await queue.put(item) print(f"Produced {item}") await asyncio.sleep(random.random()) await queue.put(None) # 结束信号 async def consumer(queue): while True: item = await queue.get() if item is None: break print(f"Consumed {item}") await asyncio.sleep(random.random()) async def main(): queue = asyncio.Queue(maxsize=10) await asyncio.gather( producer(queue, 20), consumer(queue) ) asyncio.run(main())
1. 实现线程池/进程池/协程池对比 2. 实现高性能下载器 3. 实现并发限制器
下一章:第三十二章:SQLite数据库