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
Freigeben: 2024-12-05 07:50:13
Original
482 Leute haben es durchsucht

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)
Nach dem Login kopieren

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()
Nach dem Login kopieren

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)
Nach dem Login kopieren

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!

Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage