Назад к вопросам
СБЕР
СБЕР Сбол
Junior — Middle
78
Какое минимальное количество потоков необходимо для возникновения взаимной блокировки (Deadlock)?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Минимальное количество потоков, необходимое для возникновения взаимной блокировки (Deadlock), — два.
Взаимная блокировка происходит, когда два или более потока одновременно удерживают ресурсы и каждый из них ожидает освобождения ресурса, захваченного другим потоком. Например:
- Поток A захватывает ресурс 1 и ожидает ресурс 2.
- Поток B захватывает ресурс 2 и ожидает ресурс 1.
Оба потока блокируются навсегда, так как каждый ждет освобождения ресурса, который удерживает другой.
Пример на псевдокоде:
// Поток 1
lock(resource1)
wait()
lock(resource2)
// Поток 2
lock(resource2)
wait()
lock(resource1)
Таким образом, для deadlock достаточно двух потоков и двух ресурсов.