Встречается на собеседованиях • сегодня

Что такое starvation

Starvation (голодание) — ситуация, когда поток не может получить доступ к ресурсу из-за того, что другие потоки постоянно его монополизируют.

Причины:

  • Высокоприоритетные потоки захватывают ресурс надолго
  • Несправедливое планирование (например, synchronized в Java не гарантирует fairness)

Пример:

java
public class StarvationDemo {
    public synchronized void criticalSection() {
        // Долгая работа с ресурсом
    }
}
// Если один поток часто вызывает criticalSection(), другие могут ждать вечно  

Решение:

  • Использовать ReentrantLock с fairness = true
  • Уменьшать время удержания блокировки
  • Приоритеты потоков не должны влиять на доступ к ресурсу
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы