При deadlock участники ждут друг друга и не могут продолжить. При livelock они активно реагируют и меняют состояние, но полезного продвижения всё равно нет.
Чем дедлок отличается от лайвлока?
При deadlock участники ждут друг друга и не могут продолжить. При livelock они активно реагируют и меняют состояние, но полезного продвижения всё равно нет.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
При deadlock участники ждут друг друга и не могут продолжить. При livelock они активно реагируют и меняют состояние, но полезного продвижения всё равно нет.
Пример deadlock — две горутины захватили разные locks и ждут второй в противоположном порядке. Livelock возможен, когда обе постоянно освобождают ресурс и повторяют попытку синхронно, мешая друг другу. Помогают единый порядок захвата, определённый арбитраж и backoff с jitter. Высокая активность процесса ещё не доказывает прогресс.