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中实现多进程并发,具体选择哪种方法取决于任务的特点和需求。