ホームページ > バックエンド開発 > Python チュートリアル > マルチプロセッシングを使用して Python 関数を並列実行するにはどうすればよいですか?

マルチプロセッシングを使用して Python 関数を並列実行するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-29 20:07:13
オリジナル
216 人が閲覧しました

How Can I Run Python Functions in Parallel Using Multiprocessing?

関数の並列実行

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート