関数の並列実行: マルチプロセッシングのガイド
概念
マルチタスクには複数の処理が含まれますタスクを同時に実行することは、スレッド化またはスレッド化によって達成できる偉業です。 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 サイトの他の関連記事を参照してください。