Java中是否有Mutex对象或创建它的方法?我之所以问是因为初始化为1个许可的Semaphore对象对我没有帮助。考虑以下情况:
try {
semaphore.acquire();
//do stuff
semaphore.release();
} catch (Exception e) {
semaphore.release();
}
如果在第一个获取(acquire)操作发生异常,则catch块中的释放(release)操作将增加许可数,从而使信号量不再是二进制信号量。
正确的方式会是什么呢?
try {
semaphore.acquire();
//do stuff
} catch (Exception e) {
//exception stuff
} finally {
semaphore.release();
}
以上代码是否可以确保信号量是二进制的?