क्या जावा में एक म्यूटेक्स ऑब्जेक्ट है या एक बनाने का तरीका है? मैं पूछ रहा हूं क्योंकि 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();
}
क्या उपरोक्त कोड यह सुनिश्चित करेगा कि सेमाफोर द्विआधारी होगा?