Pythonのマルチプロセス処理
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 で全てのタスクが終わるまで待ちます。最終的に、計算結果が出力されます。
Windows プラットフォームでは、マルチプロセスプログラムは if __name__ == ‘__main__’: 保護する必要がありますので、プロセスプールの使用に注意してください。