❓ Чем livelock и starvation отличаются от deadlock?
Все три — проблемы прогресса, но механизм разный.
▪️ Deadlock — потоки заблокированы навсегда, ждут ресурсы друг друга и ничего не делают.
▪️ Livelock — потоки не заблокированы и активно работают, но из-за постоянной реакции друг на друга не продвигаются вперёд. Аналогия: два человека в коридоре бесконечно уступают дорогу в одну и ту же сторону.
▪️ Starvation (голодание) — поток в принципе мог бы работать, но ресурс постоянно перехватывают другие. Например, низкоприоритетный поток при жадных высокоприоритетных или несправедливый (unfair) лок.
🐸 Библиотека собеса по Java
#concurrency
Post #1364
1.07K
- 👍 5
- 🔥 1
- 🎉 1