School of Information Systems

Python Multiprocessing

Python Multiprocessing is a method for running multiple processes in parallel, with each process running independently and having its own memory space. This allows for true parallelism in CPU-bound tasks, as multiprocessing is not limited by the Global Interpreter Lock (GIL).

Concepts in Python Multiprocessing :

  • Process

A process is a completely independent unit of execution, having its own memory space, file descriptor, and Python interpreter. In multiprocessing, multiple processes run in parallel.

  • Global Interpreter Lock (GIL)

GIL is an internal lock in Python that limits only one Python thread that can run at any given time in a single process. Multiprocessing avoids GIL, as each process has its own Python interpreter.

  • Multiprocessing Module

Python provides a built-in module called multiprocessing to create, run, and manage processes.

Advantages

  • True Parallelism: Supports parallel execution on multi-core CPUs.
  • Ideal for CPU-bound Tasks: Highly efficient for heavy tasks such as mathematical computing, image processing, and data analysis.
  • Process Isolation: Each process has a separate memory space, thus preventing data conflicts between processes.
  • Stability: If one process fails, the others keep running.

Disadvantages

  • Memory Overhead: Since each process has its own memory space, memory usage can be greater than multithreading.
  • Startup Time: Creating a new process is slower than creating a thread.
  • Interprocess Communication (IPC): Sharing data between processes requires special mechanisms such as Queue or Pipe.
Freza Fathur Nur Purnomo