Какое минимальное количество потоков необходимо для возникновения взаимной блокировки (Deadlock)?

Минимальное количество потоков, необходимое для возникновения взаимной блокировки (Deadlock), — два.

Короткий ответ

Что ответить на собеседовании

Минимальное количество потоков, необходимое для возникновения взаимной блокировки (Deadlock), — два.

Подробный разбор

Ответ с пояснениями

Минимальное количество потоков, необходимое для возникновения взаимной блокировки (Deadlock), — два.

Взаимная блокировка происходит, когда два или более потока одновременно удерживают ресурсы и каждый из них ожидает освобождения ресурса, захваченного другим потоком. Например:

  • Поток A захватывает ресурс 1 и ожидает ресурс 2.
  • Поток B захватывает ресурс 2 и ожидает ресурс 1.

Оба потока блокируются навсегда, так как каждый ждет освобождения ресурса, который удерживает другой.

Пример на псевдокоде:

// Поток 1
lock(resource1)
wait()
lock(resource2)

// Поток 2
lock(resource2)
wait()
lock(resource1)

Таким образом, для deadlock достаточно двух потоков и двух ресурсов.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее