Existe um objeto Mutex em java ou uma maneira de criar um? Estou perguntando porque um objeto Semaphore inicializado com 1 licença não me ajuda. Pense neste caso:
try {
semaphore.acquire();
//do stuff
semaphore.release();
} catch (Exception e) {
semaphore.release();
}
se ocorrer uma exceção na primeira aquisição, a liberação no bloco catch aumentará as permissões e o semáforo não será mais um semáforo binário.
Será a maneira correta?
try {
semaphore.acquire();
//do stuff
} catch (Exception e) {
//exception stuff
} finally {
semaphore.release();
}
O código acima garantirá que o semáforo será binário?