Встречается на собеседованиях • сегодня
Какие знаешь способы разрешения Deadlock
Вот основные способы разрешения deadlock в Python:
- Упорядоченное получение блокировок - всегда запрашивать блокировки в одном порядке:
python
lock1 = threading.Lock()
lock2 = threading.Lock()
def thread1():
with lock1:
with lock2:
# работа с ресурсами
def thread2():
with lock1: # тот же порядок
with lock2:
# работа с ресурсами- Таймауты - использовать
acquire(timeout)вместо бесконечного ожидания:
python
if lock1.acquire(timeout=1):
try:
if lock2.acquire(timeout=1):
# работа
finally:
lock1.release()-
Разрушение deadlock - принудительное освобождение ресурсов через watchdog timer.
-
Избегание вложенных блокировок - перепроектирование кода для минимизации блокировок.
-
Использование RLock - реентерабельные блокировки для одного потока.
-
Thread-safe структуры - использование Queue вместо ручных блокировок.
Важно: лучшая стратегия - профилактика через проектирование системы без условий для deadlock.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы