Javaに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();
}
上記のコードは、セマフォがバイナリになることを保証しますか?