Чи є об'єкт Mutex в Java або спосіб створити його? Я прошу, тому що об'єкт Semaphore, ініціалізований з 1 дозволом, не допомагає мені. Подумайте про цей випадок:
try {
semaphore.acquire();
//do stuff
semaphore.release();
} catch (Exception e) {
semaphore.release();
}
якщо виняток трапляється при першому придбанні, вивільнення в блоці вилову збільшить дозволи, і семафор більше не буде бінарним семафором.
Чи буде правильний шлях?
try {
semaphore.acquire();
//do stuff
} catch (Exception e) {
//exception stuff
} finally {
semaphore.release();
}
Чи забезпечить вищезазначений код, що семафор буде двійковим?