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

Работал ли с механизмами синхронизации

Да, работал. В Python основные механизмы синхронизации — это Lock, RLock, Semaphore, Event, Condition и Barrier из модуля threading.

Пример с Lock:

python
from threading import Lock, Thread

lock = Lock()
shared_data = 0

def increment():
global shared_data
with lock:
shared_data += 1

threads = [Thread(target=increment) for _ in range(10)]
for t in threads:
t.start()
for t in threads:
t.join()
print(shared_data) # Гарантированно 10

text

**Нюансы:**  
- `RLock` позволяет рекурсивный захват одним потоком.  
- `Semaphore` ограничивает количество потоков, работающих с ресурсом.  
- `Event` и `Condition` полезны для ожидания событий.  
- В `asyncio` используются аналоги: `asyncio.Lock`, `Event` и др.  

Для процессов (`multiprocessing`) механизмы похожи, но работают через IPC.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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