Có đối tượng Mutex trong java hay cách tạo một đối tượng? Tôi đang hỏi vì một đối tượng Semaphore được khởi tạo với 1 giấy phép không giúp được tôi. Hãy nghĩ đến trường hợp này:
try {
semaphore.acquire();
//do stuff
semaphore.release();
} catch (Exception e) {
semaphore.release();
}
nếu một ngoại lệ xảy ra ở lần mua đầu tiên, việc phát hành trong khối catch sẽ tăng giấy phép và semaphore không còn là semaphore nhị phân nữa.
Cách chính xác sẽ là?
try {
semaphore.acquire();
//do stuff
} catch (Exception e) {
//exception stuff
} finally {
semaphore.release();
}
Đoạn mã trên có đảm bảo rằng semaphore sẽ là nhị phân không?