🧠 什么是并发编程?

在现代编程中,并发(Concurrency)是提升程序性能的关键技术。Python通过多种方式实现并发,主要包括:

  • 多线程(Multithreading)
  • 异步编程(Asynchronous Programming)
  • 多进程(Multiprocessing,需额外模块)

📘 想深入了解Python多线程原理?可阅读 /tutorials/python_multithreading

🚀 多线程:threading 模块

Python的threading模块允许创建线程,但需注意:

  1. **全局解释器锁(GIL)**限制了多线程在CPU密集型任务中的性能提升
  2. 适合I/O密集型任务(如网络请求、文件读写)
  3. 使用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 用事件循环处理大量并发连接

📦 实战工具推荐

  1. asyncio - 标准库异步框架
  2. concurrent.futures - 线程/进程池管理
  3. Celery - 分布式任务队列

并发编程 概念