Dead - от слова смерть. Если часто писать код с дедлоками, то тебя уволят, и ты можешь умереть с голоду
Так проще всего запомнить
Самый простой многопоточный псевдокод с дедлоком по версии AI:
Thread A:
lock(A)
wait lock(B)
Thread B:
lock(B)
wait lock(A)
Livelock - от слова live, но по факту та же дичь что и дедлок, только в профиль...
По сути, код что-то активно делает, но не продвигается
Связано это, как правило, с многопоточкой и вызовом в цикле TryLock и бесконечными неудачами этой операции
Самый простой многопоточный псевдокод с лайвлоком по версии AI:
Поток A:
while true:
захватить lock_A
if lock_B свободен:
захватить lock_B
выполнить работу
выйти
освободить lock_A
// "уступаем" потоку B
Поток B:
while true:
захватить lock_B
if lock_A свободен:
захватить lock_A
выполнить работу
выйти
освободить lock_B
// "уступаем" потоку A
P.S. Есть еще Starvation - если будет интересно, можешь у GPT спросить
По сути - это когда поток бесконечно ждёт ресурс, потому что другие потоки постоянно получают его раньше
Я лично с таким не встречался
