multiprocessing, который позволяет создавать и управлять процессами, а также обмениваться данными между ними.
Многопроцессность в Python – это техника параллельного выполнения кода, при которой программа запускает несколько отдельных процессов операционной системы, каждый из которых имеет собственное адресное пространство и собственный интерпретатор Python. Это позволяет эффективно использовать многоядерные процессоры и обходить ограничение GIL (Global Interpreter Lock), которое препятствует истинному параллелизму в многопоточных программах Python.
Основные характеристики и преимущества многопроцессности:
Основные модули Python для многопроцессности:
multiprocessing:  Основной модуль для создания и управления процессами. Предоставляет инструменты для создания процессов, организации обмена данными между ними (очереди, пайпы, разделяемая память) и синхронизации.concurrent.futures: Предоставляет высокоуровневый интерфейс для асинхронного выполнения задач с использованием пула процессов (ProcessPoolExecutor) или пула потоков (ThreadPoolExecutor). Упрощает написание параллельного кода.Когда использовать многопроцессность:
Пример использования (упрощенный):
  import multiprocessing
  import time
  def worker(num):
      print(f"Process {num}: Starting")
      time.sleep(2)  # Имитация выполнения задачи
      print(f"Process {num}: Finishing")
  if __name__ == '__main__':
      processes = []
      for i in range(3):
          p = multiprocessing.Process(target=worker, args=(i,))
          processes.append(p)
          p.start()
      for p in processes:
          p.join()  # Дождаться завершения всех процессов
      print("All processes finished")
  В этом примере создаются три отдельных процесса, каждый из которых выполняет функцию worker.  p.join() обеспечивает, что основная программа будет ждать завершения всех дочерних процессов, прежде чем продолжить выполнение.