Python multiprocessing 模块
Python 的 multiprocessing 模块用于 多历程并行计算,可以充实利用 多核 CPU 进行任务加速,突破 Python GIL(全局表明器锁) 的限定,提高程序执行服从。
1. 为什么利用 multiprocessing?
Python 默认的 threading 模块利用 线程 进行并发,但由于 GIL(全局表明器锁)的存在,多线程无法真正实现 CPU 级别的并行计算,实用于 I/O 麋集型任务(如文件读写、网络请求)。
✅ multiprocessing 创建多个历程,每个历程有独立的 Python 表明器,可以或许真正实现并行计算,实用于 CPU 麋集型任务(如数学计算、数据处置惩罚、图像渲染)。
2. 根本用法:创建历程
2.1 multiprocessing.Process
- import multiprocessing
- import time
- def worker(name):
- print(f"Process {name} is running")
- time.sleep(2)
- print(f"Process {name} is done")
- if __name__ == "__main__":
- # 创建进程
- p1 = multiprocessing.Process(target=worker, args=("A",))
- p2 = multiprocessing.Process(target=worker, args=("B",))
- # 启动进程
- p1.start()
- p2.start()
- # 等待子进程完成
- p1.join()
- p2.join()
- print("All processes finished.")
复制代码 |