Что такое Semaphore в Java?

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

Semaphore — ограничивает количество потоков, одновременно обращающихся к ресурсу. Инициализируешь с N permits. acquire() — забирает permit (блокируется если нет), release() — возвращает. Пример: пул из 10 соединений — Semaphore(10), каждый поток acquire перед использованием. Binary semaphore (permits=1) — аналог mutex, но без ownership (любой поток может сделать release). Поддерживает fairness, tryAcquire с таймаутом. Проще чем Lock для задач ограничения конкурентности.

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

Что такое warm-up период JVM и как он влияет на производительность?