Multiprocessing vs. Threading in Python

Hier ist ein Code-Schnipsel für Multiprocessing in Python:

import multiprocessing

def worker(num):
    """thread worker function"""
    print(f'Worker: {num}')

jobs = []
for i in range(5):
    p = multiprocessing.Process(target=worker, args=(i,))
    jobs.append(p)
    p.start()

Und hier ist ein Code-Schnipsel für Threading in Python:

import threading

def worker(num):
    """thread worker function"""
    print(f'Worker: {num}')

threads = []
for i in range(5):
    t = threading.Thread(target=worker, args=(i,))
    threads.append(t)
    t.start()

Der Hauptunterschied zwischen den beiden ist, dass Multiprocessing für jeden Funktionsaufruf separate Prozesse erstellt, während Threading Threads innerhalb desselben Prozesses erstellt. Das bedeutet, dass Multiprocessing auf Systemen mit mehreren Kernen echte parallele Ausführung ermöglicht, während Threading gleichzeitige Ausführung auf einem einzelnen Kern ermöglicht.