Встречается на собеседованиях • сегодня
Что такое состояние взаимоблокировки
Взаимоблокировка (deadlock) — ситуация, когда два или более потока/процесса бесконечно ожидают освобождения ресурсов, заблокированных друг другом.
Условия для deadlock:
- Взаимное исключение (ресурс занят одним потоком).
- Удержание и ожидание (поток держит ресурс и ждёт другой).
- Отсутствие вытеснения (ресурс нельзя отнять).
- Циклическое ожидание (замкнутый круг зависимостей).
Пример на Python:
python
import threading
lock1 = threading.Lock()
lock2 = threading.Lock()
def thread1():
with lock1:
with lock2:
print("Thread1")
def thread2():
with lock2:
with lock1:
print("Thread2")
t1 = threading.Thread(target=thread1)
t2 = threading.Thread(target=thread2)
t1.start(); t2.start()Решение:
- Упорядочивание блокировок (одинаковый порядок захвата).
- Таймауты на
acquire(). - Использование
RLockили менеджеров контекста.

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