Deadlock, livelock, starvation — в чём разница?

Ответ

Deadlock: два потока ждут друг друга. Livelock: потоки активны, но не прогрессируют. Starvation: поток не получает ресурс.

Разбор: Различие в том, заблокирован поток или активен, и в причине простоя. Deadlock — взаимное циклическое ожидание (потоки спят на мониторах), livelock — потоки работают, но из-за реакций друг на друга не продвигаются, starvation — поток надолго лишён ресурса или CPU. Дистракторы переставляют эти определения местами, что и создаёт правдоподобную, но неверную картину: каждое из трёх описаний привязано не к своему термину.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться