multiprocessing — parallel execution using separate processes.
1from multiprocessing import Process, Pool, Queue2import time34# Process-based parallelism5def cpu_bound(n):6 return sum(i * i for i in range(n))78# Pool for map operations9with Pool(4) as pool:10 results = pool.map(cpu_bound, [10**6] * 4)11 print(results)1213# Manual process management14processes = []15for i in range(4):16 p = Process(target=cpu_bound, args=(10**6,))17 p.start()18 processes.append(p)1920for p in processes:21 p.join()2223# Queue for inter-process communication24q = Queue()2526def producer(q):27 for i in range(5):28 q.put(i)29 q.put(None) # Sentinel3031def consumer(q):32 while (item := q.get()) is not None:33 print(f"Got: {item}")
vs threading: