Livelock
Суть
Livelock — потоки не заблокированы и постоянно меняют состояние, но полезной работы не делают: каждый реагирует на действие другого, и система крутится на месте. В отличие от deadlock, в стеках нет ожидания — есть бесконечная активность, которая съедает CPU. В отличие от starvation (голодание), страдают все участники, а не один низкоприоритетный поток.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep