มีวัตถุ Mutex ใน java หรือวิธีสร้างหรือไม่? ฉันกำลังถามเนื่องจากวัตถุ Semaphore ที่เริ่มต้นด้วยใบอนุญาต 1 ใบไม่ได้ช่วยฉัน ลองนึกถึงกรณีนี้:
try {
semaphore.acquire();
//do stuff
semaphore.release();
} catch (Exception e) {
semaphore.release();
}
หากมีข้อยกเว้นเกิดขึ้นเมื่อได้รับครั้งแรกการเปิดตัวในบล็อกจับจะเพิ่มการอนุญาตและสัญญาณไม่ได้เป็นสัญญาณไบนารีอีกต่อไป
วิธีที่ถูกต้องจะเป็นอย่างไร
try {
semaphore.acquire();
//do stuff
} catch (Exception e) {
//exception stuff
} finally {
semaphore.release();
}
รหัสข้างต้นจะทำให้มั่นใจได้ว่าสัญญาณจะเป็นไบนารีหรือไม่?