Python中实现多进程并发的方法有以下几种:
- 使用
multiprocessing
模块:multiprocessing
模块是Python标准库中用于实现多进程的模块,可以使用Process
类创建多个进程,并通过调用start()
方法启动进程,通过调用join()
方法等待进程结束。
from multiprocessing import Process def func(): # 进程执行的代码 if __name__ == '__main__': processes = [] for i in range(10): p = Process(target=func) processes.append(p) p.start() for p in processes: p.join()
- 使用
concurrent.futures
模块:concurrent.futures
模块是Python标准库中用于并发执行任务的模块,提供了ProcessPoolExecutor
和ThreadPoolExecutor
类供使用。可以使用submit()
方法提交任务,返回一个Future
对象,可以调用result()
方法获取任务的返回结果。
from concurrent.futures import ProcessPoolExecutor def func(): # 任务执行的代码 if __name__ == '__main__': with ProcessPoolExecutor() as executor: results = [executor.submit(func) for _ in range(10)] for result in results: print(result.result())
- 使用第三方库
joblib
:joblib
是一个用于并行计算的Python库,提供了Parallel
和delayed
函数。可以使用Parallel
函数创建一个并行计算的上下文,并使用delayed
函数将需要并行执行的任务包装成一个可调用对象。
from joblib import Parallel, delayed def func(): # 任务执行的代码 if __name__ == '__main__': results = Parallel(n_jobs=10)(delayed(func)() for _ in range(10)) for result in results: print(result)
这些方法都可以在Python中实现多进程并发,具体选择哪种方法取决于任务的特点和需求。