Мультипроцессинг что это

Обычно программы имеют дело с двумя типами задач:

  • Связанные с вводом/выводом (I/O bound). 
    Если задача выполняет много операций ввода/вывода, она называется задачей, связанной с вводом/выводом.

    Примеры: чтение из файлов, запись в файлы, подключение к базам данных и выполнение сетевого запроса. Ускорить выполнение можно с помощью многопоточности.
     
  • Привязанные к процессору (CPU bound). 
    Когда задача выполняет много операций с использованием процессора, она называется задачей, привязанной к процессору.

    Примеры: изменение размера изображения и потоковое видео — это задачи, привязанные к процессору. Ускорить выполнение можно с помощью многопроцессорности.

Многопроцессорность позволяет двум или более процессорам одновременно обрабатывать две или более различных частей программы. В Python для реализации мультипроцессинга используется модуль multiprocessing.

Oct. 12, 2023, Источник

Мультипроцессинг (multiprocessing) - это использование нескольких процессов для выполнения задач параллельно. Модуль `multiprocessing` предоставляет возможность создания и управления процессами.

Основные концепции мультипроцессинга:

1. Параллельное выполнение: Мультипроцессинг позволяет запускать несколько процессов одновременно, что позволяет использовать многопроцессорные системы более эффективно и улучшает производительность программы.

2. Работа с потоками: Каждый процесс в мультипроцессинге имеет свой собственный поток выполнения, независимый от других процессов. Это позволяет избежать проблем с глобальной блокировкой интерпретатора (GIL), которая присутствует в многопоточных приложениях.

3. Использование ресурсов: Каждый процесс имеет свое собственное пространство памяти и ресурсы, что обеспечивает изоляцию между процессами и предотвращает конфликты доступа к данным.

4. Модуль multiprocessing: Для работы с мультипроцессингом используется встроенный модуль `multiprocessing`, который предоставляет API для создания и управления процессами. Он аналогичен модулю `threading`, но использует отдельные процессы вместо потоков для параллельного выполнения кода.Пример использования multiprocessing:

import multiprocessing

def worker():
    print("Hello from process")

# Создание и запуск процесса
p = multiprocessing.Process(target=worker)
p.start()

Этот пример создает новый процесс, который выполняет функцию `worker`, выводящую сообщение "Hello from process".

Feb. 17, 2024, easyoffer