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中實現多進程并發,具體選擇哪種方法取決于任務的特點和需求。