Ответ
Процесс в Python — это экземпляр программы, который выполняется в собственном, изолированном пространстве памяти. Такая изоляция обеспечивает стабильность и безопасность: сбой в одном процессе не влияет на другие.
Для работы с процессами в Python используется модуль multiprocessing
. Он позволяет обойти ограничение Global Interpreter Lock (GIL) и выполнять код по-настоящему параллельно на нескольких ядрах процессора, что идеально подходит для CPU-bound задач (интенсивных вычислений).
Пример создания процесса:
from multiprocessing import Process
import os
def worker():
# os.getpid() покажет уникальный ID процесса
print(f"Процесс-воркер запущен с PID: {os.getpid()}")
if __name__ == "__main__":
p = Process(target=worker)
p.start() # Запуск процесса
print(f"Основной процесс с PID: {os.getpid()}")
p.join() # Ожидание завершения дочернего процесса
print("Процесс-воркер завершил работу.")
Ключевые особенности:
- Изоляция памяти: Процессы не разделяют данные по умолчанию, что предотвращает гонки данных.
- Параллелизм: Позволяют достичь истинного параллелизма на многоядерных системах.
- Накладные расходы: Создание процесса и межпроцессное взаимодействие (IPC) более ресурсоемки по сравнению с потоками.
- Обмен данными: Для коммуникации используются специальные механизмы, такие как
Queue
,Pipe
илиShared Memory
.