Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich mithilfe von Multiprocessing mehrere Python-Funktionen parallel ausführen?

Wie kann ich mithilfe von Multiprocessing mehrere Python-Funktionen parallel ausführen?

DDD
DDDOriginal
2024-12-05 07:50:13448Durchsuche

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

Funktionen parallel ausführen: Ein Leitfaden zur Multiverarbeitung

Konzept

Multitasking beinhaltet die Ausführung mehrerer Aufgaben gleichzeitig ausführen, eine Leistung, die entweder durch Threading oder erreicht werden kann Multiprocessing.

Multiprocessing vs. Threading

In Python ist Threading hauptsächlich für E/A-gebundene Vorgänge nützlich. Bei CPU-intensiven Aufgaben bietet Multiprocessing eine bessere Leistung, da mehrere Prozessorkerne genutzt werden.

Funktionen parallel ausführen

Stellen Sie sich das folgende Szenario vor:

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)

Um func1 und func2 gleichzeitig auszuführen, sollte Multiprocessing eingesetzt werden. Unten ist ein Beispiel:

from multiprocessing import Process

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

Parallele Ausführung kapseln

Der obige Code kann zu einer Funktion vereinfacht werden, die die parallele Ausführung mehrerer Funktionen erleichtert:

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)

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von Multiprocessing mehrere Python-Funktionen parallel ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn