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

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

DDD
リリース: 2024-12-05 07:50:13
オリジナル
454 人が閲覧しました

How Can I Run Multiple Python Functions in Parallel Using Multiprocessing?

関数の並列実行: マルチプロセッシングのガイド

概念

マルチタスクには複数の処理が含まれますタスクを同時に実行することは、スレッド化またはスレッド化によって達成できる偉業です。 multiprocessing.

マルチプロセッシングとスレッド化

Python では、スレッド化は主に I/O バウンドの操作に役立ちます。 CPU を集中的に使用するタスクの場合、マルチプロセッシングは複数のプロセッサ コアを活用するため、パフォーマンスが向上します。

関数の並列実行

次のシナリオを考えてみましょう:

import common

dir1 = 'C:\folder1'
dir2 = 'C:\folder2'
filename = 'test.txt'
addFiles = [25, 5, 15, 35, 45, 25, 5, 15, 35, 45]

def func1():
   c = common.Common()
   for i in range(len(addFiles)):
       c.createFiles(addFiles[i], filename, dir1)
       c.getFiles(dir1)
       time.sleep(10)
       c.removeFiles(addFiles[i], dir1)
       c.getFiles(dir1)

def func2():
   c = common.Common()
   for i in range(len(addFiles)):
       c.createFiles(addFiles[i], filename, dir2)
       c.getFiles(dir2)
       time.sleep(10)
       c.removeFiles(addFiles[i], dir2)
       c.getFiles(dir2)
ログイン後にコピー

func1 と func2 を同時に実行するには、マルチプロセッシングを使用する必要があります。以下は例です:

from multiprocessing import Process

if __name__ == "__main__":
    p1 = Process(target=func1)
    p1.start()
    p2 = Process(target=func2)
    p2.start()
    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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート