首頁 >後端開發 >Python教學 >如何使用多重處理並行運行多個 Python 函數?

如何使用多重處理並行運行多個 Python 函數?

DDD
DDD原創
2024-12-05 07:50:13448瀏覽

How Can I Run Multiple Python Functions in Parallel Using 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn