Maison >développement back-end >Tutoriel Python >Comment puis-je exécuter plusieurs fonctions Python en parallèle à l'aide du multitraitement ?
Exécuter des fonctions en parallèle : un guide du multitraitement
Concept
Le multitâche implique l'exécution de plusieurs tâches simultanément, un exploit qui peut être réalisé soit par threading, soit par multitraitement.
Multitraitement vs threading
En Python, le threading est principalement utile pour les opérations liées aux E/S. Pour les tâches gourmandes en CPU, le multitraitement offre de meilleures performances car il exploite plusieurs cœurs de processeur.
Exécution de fonctions en parallèle
Considérez le scénario suivant :
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)
Pour exécuter func1 et func2 simultanément, le multitraitement doit être utilisé. Vous trouverez ci-dessous un exemple :
from multiprocessing import Process if __name__ == "__main__": p1 = Process(target=func1) p1.start() p2 = Process(target=func2) p2.start() p1.join() p2.join()
Encapsulation de l'exécution parallèle
Le code ci-dessus peut être simplifié en une fonction qui facilite l'exécution parallèle de plusieurs fonctions :
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)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!