🧠 什么是并发编程?
在现代编程中,并发(Concurrency)是提升程序性能的关键技术。Python通过多种方式实现并发,主要包括:
- 多线程(Multithreading)
- 异步编程(Asynchronous Programming)
- 多进程(Multiprocessing,需额外模块)
📘 想深入了解Python多线程原理?可阅读 /tutorials/python_multithreading
🚀 多线程:threading
模块
Python的threading
模块允许创建线程,但需注意:
- **全局解释器锁(GIL)**限制了多线程在CPU密集型任务中的性能提升
- 适合I/O密集型任务(如网络请求、文件读写)
- 使用
Thread
类创建线程,示例:
import threading
def worker():
print("子线程运行中")
t = threading.Thread(target=worker)
t.start()
Python 多线程
🌀 异步编程:asyncio
框架
Python 3.4+ 引入的asyncio
库支持异步操作,特点:
- 使用
async def
定义协程 await
关键字用于等待异步操作完成- 基于事件循环(Event Loop)实现非阻塞IO
示例代码:
import asyncio
async def count(name, count):
print(f"{name} counting {count}")
await asyncio.sleep(1)
print(f"{name} done")
async def main():
await asyncio.gather(count("A", 1), count("B", 2))
main()
Python 异步编程
📌 选择并发模型的建议
场景 | 推荐方式 | 说明 |
---|---|---|
I/O密集型任务 | 多线程 | 利用GIL特性,适合网络/文件操作 |
CPU密集型任务 | 多进程 | 绕过GIL限制,但需处理进程间通信 |
高性能网络服务 | 异步IO | 用事件循环处理大量并发连接 |
📦 实战工具推荐
- asyncio - 标准库异步框架
- concurrent.futures - 线程/进程池管理
- Celery - 分布式任务队列
并发编程 概念