Встречается на собеседованиях • сегодня
Работал ли с механизмами синхронизации
Да, работал. В 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.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы