ホームページ  >  記事  >  バックエンド開発  >  並列処理を使用して複数の Python 関数を同時に実行するにはどうすればよいですか?

並列処理を使用して複数の Python 関数を同時に実行するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-18 05:06:02230ブラウズ

How Can I Run Multiple Python Functions Simultaneously Using Parallelism?

Python 並列処理で関数を同時に実行する方法

Python では、複数の関数を同時に実行しようとするのが難しい場合があります。特に、機能が相互干渉せずに独立して動作する場合、1 つの機能が完了するのを待ってから別の機能を開始すると、効率が制限されます。この問題に対処するために、Python はスレッド化とマルチプロセッシングという 2 つのアプローチを提供します。

真の並列処理のためのマルチプロセッシングの探索

マルチプロセッシングは、Python で真の並列処理を実現するための好ましい選択肢です。 CPython によって課される制約。マルチプロセッシングの使用を示す完全な例を次に示します。

from multiprocessing import Process

def func1():
    print("func1: starting")
    for i in range(10000000):
        pass
    print("func1: finishing")


def func2():
    print("func2: starting")
    for i in range(10000000):
        pass
    print("func2: finishing")


if __name__ == "__main__":
    p1 = Process(target=func1)
    p1.start()
    p2 = Process(target=func2)
    p2.start()
    p1.join()
    p2.join()

このアプローチでは、Python のマルチプロセッシング モジュールの Process クラスを使用して、関数ごとに子プロセスを生成および管理します。プロセスを開始して参加することで、func1 と func2 の両方を並行して実行できます。

並列実行のカプセル化

プロセスの開始と参加の仕組みは、便利にカプセル化できます。 function:

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。