関数の並列実行
Python では、関数の順次実行がデフォルトの動作です。ただし、リソースを大量に消費する操作を扱う場合は、複数の機能を同時に実行してパフォーマンスを向上させることが有益な場合があります。この記事では、スレッドまたはマルチプロセッシングを使用して関数を並列実行する方法について説明します。
スレッドとマルチプロセッシングは、それぞれマルチスレッド シナリオとマルチプロセス シナリオのためのメカニズムを提供する 2 つのライブラリです。スレッド処理は軽量ですが、一般にマルチプロセッシングの方が計算タスクのパフォーマンスが向上します。
2 つの関数 func1 と func2 を並行して実行する例を考えてみましょう。マルチプロセッシングを使用すると、関数を次のように定義できます。
def func1(): # Function 1 code print("func1: completing") def func2(): # Function 2 code print("func2: completing")
関数を並列実行するには、次のアプローチを使用できます。
from multiprocessing import Process p1 = Process(target=func1) p1.start() p2 = Process(target=func2) p2.start()
start() メソッドがプロセスを開始します。 、それらは同時に実行されます。メインプロセスが子プロセスの完了を確実に待機するようにするには、join() メソッドを使用します:
p1.join() p2.join()
さらに、並列実行をヘルパー関数にカプセル化できます:
def runInParallel(*fns): proc = [] for fn in fns: p = Process(target=fn) p.start() proc.append(p) for p in proc: p.join() runInParallel(func1, func2)
これにより、シンプルで簡潔な関数呼び出しで複数の関数を並行して実行できます。
以上がマルチプロセッシングを使用して Python 関数を並列実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。