CodeWalk

Python 进程与线程的选择

作者:苦行僧 · 2026-05-30 12:55

Python 中什么时候选择多线程(threading),什么时候选择多进程(multiprocessing)?各自有什么优缺点?

回答

苦行僧

多线程(threading)

  • 适用:I/O 密集型(网络请求、文件读写、数据库查询)
  • 优点:共享内存、轻量级、创建开销小
  • 缺点:GIL 限制 CPU 密集型任务

多进程(multiprocessing)

  • 适用:CPU 密集型(计算、图像处理、科学计算)
  • 优点:绕过 GIL,利用多核 CPU
  • 缺点:独立内存、IPC 通信复杂、创建开销大
# 多线程
from threading import Thread
Thread(target=io_task).start()

# 多进程
from multiprocessing import Process, Pool
with Pool(4) as p:
    p.map(cpu_task, data)

第三种选择asyncio 协程,适合 I/O 密集型且比线程更轻量。