Escenario de uso: se usa comúnmente para usar recursos limitados y limitar el número máximo de subprocesos concurrentes.
- Establezca el número máximo de semáforos: semáforo semáforo = nuevo semáforo (3);
- Obtener semáforo:
- semaphore.acquire (); // Obtener semáforo
- semaphore.acquire (3); // adquiere múltiples licencias
- semaphore.tryAcquire (3); // Intenta obtener varias licencias
- semaphore.tryAcquire (5, TimeUnit.SECONDS); // Adquiere permiso dentro de un tiempo determinado
- Lanzamiento del semáforo: semaphore.release ();
默认情况下,信号量是非公平性的(先等待先执行为公平。类似于买东西的时候大家排队付款,先来的先付款是公平的。但是这时候有人插队,那就是非公平的)