💡 Python 的多线程受 GIL 限制,在 CPU 密集型任务中难以实现真正的并行。多进程是绕过 GIL、充分利用多核 CPU 的推荐方式。
二、基础用法:multiprocessing.Process
1. 创建进程
from multiprocessing import Process
import os, timedeftask():time.sleep(2)print('子进程ID:', os.getpid())if __name__ =='__main__':print('主进程ID:', os.getpid())processes =[]for _ inrange(10):p = Process(target=task)p.start()processes.append(p)for p in processes:p.join()
2. 常用参数和方法
属性 / 方法
说明
target
执行函数
args / kwargs
传参
start()
启动进程
join(timeout)
阻塞等待
is_alive()
是否仍在运行
terminate()
终止进程
daemon
设置是否为守护进程
pid / exitcode
进程 ID / 退出码
三、进程池:multiprocessing.Pool
1. 创建进程池并提交任务
from multiprocessing import Pool
import timedeftask(name):time.sleep(2)print(f"{name} 执行完毕")if __name__ =='__main__':pool = Pool(processes=4)for i inrange(6):pool.apply_async(task, args=(f"任务{i}",))# 非阻塞方式pool.close()pool.join()