Что такое процесс в Python
Python
Senior
Билайн
Что такое процесс в Python
Ответы
**Процесс в Python** — это экземпляр выполняемой программы, который запускается операционной системой и имеет собственное виртуальное адресное пространство, ресурсы и изолированную память. Процессы в Python реализуются с помощью модуля `multiprocessing` и являются основным способом достижения **истинного параллелизма** (за счёт использования нескольких ядер процессора).
**Ключевые особенности процессов:**
**1. Изоляция памяти**
Каждый процесс работает в собственном пространстве памяти, что исключает конфликты данных (в отличие от потоков), но требует специальных механизмов для обмена данными.
**2. Параллелизм на уровне процессора**
Процессы могут выполняться одновременно на разных ядрах процессора, обходя ограничения GIL (Global Interpreter Lock), которые не позволяют потокам работать одновременно в CPU-задачах.
**3. Создание процессов**
Пример использования модуля `multiprocessing`:
```
from multiprocessing import Process
import os
def worker():
print(f"Процесс {os.getpid()} выполняется")
if __name__ == "__main__":
processes = []
for _ in range(3):
p = Process(target=worker)
processes.append(p)
p.start()
for p in processes:
p.join() # Ожидание завершения
```
**4. Обмен данными между процессами**
Для коммуникации используются:
**- Очереди** (`multiprocessing.Queue`),
**- Разделяемая память** (`multiprocessing.Value`, `Array`),
**- Каналы** (`multiprocessing.Pipe`).
**5. Синхронизация**
Процессы могут синхронизироваться через **блокировки** (`Lock`), **семафоры** (`Semaphore`) и другие примитивы.