Могли бы вы объяснить, что такое ситуация взаимной блокировки потоков в системе?

Взаимная блокировка (deadlock) — это ситуация в многопоточной системе, когда два или более потока навсегда блокируют друг друга, ожидая освобождения ресурсов, занятых друг другом.

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

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

Взаимная блокировка (deadlock) — это ситуация в многопоточной системе, когда два или более потока навсегда блокируют друг друга, ожидая освобождения ресурсов, занятых друг другом.

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

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

Взаимная блокировка (deadlock) — это ситуация в многопоточной системе, когда два или более потока навсегда блокируют друг друга, ожидая освобождения ресурсов, занятых друг другом.

Пример: поток A захватил ресурс 1 и ждёт ресурс 2, а поток B захватил ресурс 2 и ждёт ресурс 1. Ни один из потоков не может продолжить работу, так как каждый ждёт освобождения ресурса, занятых другим.

Для предотвращения взаимных блокировок применяют:

  • упорядочивание захвата ресурсов (все потоки захватывают ресурсы в одном порядке);
  • использование таймаутов при ожидании блокировок;
  • избегание вложенных блокировок.

В Java это часто связано с использованием synchronized блоков или Lock объектов.

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

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

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

Подробнее