最佳答案
在 Java 中是否有一个 Mutex 对象或者创建一个 Mutex 对象的方法? 我这样问是因为用1许可证初始化的 Semaphore 对象对我没有帮助。 想想这个例子:
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();
}
上面的代码是否能确保信号量是二进制的?