Встречается на собеседованиях • сегодня

Как можно синхронизировать объекты в многопроцессорной среде в Python

Для синхронизации объектов в многопроцессорной среде в Python можно использовать:

  1. Lock (Блокировки) – базовый механизм для защиты критических секций:
python
from multiprocessing import Lock, Process

lock = Lock()

def worker(lock):
    with lock:
        print("Критическая секция защищена")
  1. Semaphore – ограничивает количество процессов в критической секции:
python
from multiprocessing import Semaphore

sem = Semaphore(2) # Максимум 2 процесса одновременно

text

3. **Очереди (Queue)** – потокобезопасный обмен данными:  
```python
from multiprocessing import Queue

q = Queue()
q.put("данные")
  1. Менеджеры (Manager) – общие объекты между процессами:
python
from multiprocessing import Manager

manager = Manager()
shared_dict = manager.dict()
  1. Value/Array – разделяемая память:
python
from multiprocessing import Value, Array

counter = Value('i', 0)  # 'i' – тип integer

Важно:

  • Для CPU-bound задач лучше использовать multiprocessing, а не threading.
  • Блокировки могут привести к deadlock, если не освобождаются.
  • Очереди и менеджеры добавляют накладные расходы.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы