Multiprocessing is a powerful technique in Python for leveraging multiple CPU cores to execute tasks concurrently. It's particularly useful for CPU-bound operations, such as data processing or scientific computations.
Key Concepts 📚
- Process: Each independent unit of execution in a multiprocessing program
- Pool: Manages a pool of worker processes to parallelize tasks
- Multiprocessing Module: Built-in Python library for creating and managing processes
- Parallelism vs Concurrency:
- Parallelism executes tasks simultaneously (e.g., multi-core processing)
- Concurrency manages tasks to appear simultaneous (e.g., multi-threading)
Common Use Cases 🚀
- Batch data processing 📊
- Scientific simulations 🔬
- Web scraping (with caution) 📌
- Game development (for physics engines) 🎮
Code Example 🧾
import multiprocessing
def worker(num):
"""Thread worker function"""
print(f"Worker {num} is running")
return
if __name__ == "__main__":
processes = []
for i in range(4):
p = multiprocessing.Process(target=worker, args=(i,))
processes.append(p)
p.start()
for p in processes:
p.join()