Python進程池可以通過使用multiprocessing
模塊中的Pool
類來實現。
下面是一個簡單的示例,展示了如何使用進程池進行并行計算:
import multiprocessing
# 定義一個任務函數,用于計算平方
def square(x):
return x ** 2
if __name__ == '__main__':
# 創建一個進程池,指定最大進程數為4
pool = multiprocessing.Pool(processes=4)
# 定義要計算的數據
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 使用進程池并行計算平方
results = pool.map(square, data)
# 關閉進程池
pool.close()
# 等待所有任務完成
pool.join()
# 打印結果
print(results)
在上面的示例中,首先創建了一個進程池,指定最大進程數為4。然后定義了一個任務函數square
,用于計算平方。接下來,定義了要計算的數據data
。使用pool.map
方法將任務函數和數據傳入進程池,進程池會自動分配任務給空閑的進程進行并行計算。最后,通過pool.close
關閉進程池,并使用pool.join
等待所有任務完成。最終,打印出計算結果。
需要注意的是,進程池的使用要在if __name__ == '__main__':
條件下,這是因為在Windows平臺下,多進程的程序必須通過if __name__ == '__main__':
來保護主程序的入口點。