Что такое starvation потока?

Senior
157 просмотров
AFK Offer AI

Starvation — поток не может получить ресурс, потому что другие потоки постоянно его забирают. Пример: unfair lock, и высокоприоритетные потоки всегда получают монитор первыми. Или ReadWriteLock без fairness — если читатели постоянно приходят, writer никогда не запишет. Решение: fair-режим в ReentrantLock(true), правильные приоритеты потоков, ограничение количества concurrent readers. Thread.setPriority() может помочь, но JVM не гарантирует точное следование приоритетам.

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

Что такое deoptimization в JIT и когда она происходит?