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