जावा java.util.concurrent से। सैमफोर डॉक्स यह मेरे लिए बिल्कुल स्पष्ट नहीं था कि क्या होता है अगर semaphore.acquire() थ्रेड को अवरुद्ध करता है और बाद में एक इंटरप्टेड अपवाद द्वारा बाधित हो जाता है। क्या सैमफोर मूल्य कम हो गया है और क्या सैमफोर को छोड़ने की आवश्यकता है?semaphore.relase() की आवश्यकता है अगर semaphore.acquire() interruptedException हो जाता है?
वर्तमान में मैं इस तरह कोड का उपयोग कर रहा:
try {
// use semaphore to limit number of parallel threads
semaphore.acquire();
doMyWork();
}
finally {
semaphore.release();
}
या मैं नहीं बल्कि रिलीज() नहीं बुलाना चाहिए एक InterruptedException अधिग्रहण के दौरान होता है जब()?
धन्यवाद, यह बहुत उचित लगता है। जैसा कि आपने सुझाव दिया है, मैं अपना कोड बदल दूंगा। – kasimir
इस के साथ समस्या यह है कि semaphore.acquire() भी interruptedException फेंकता है। – jblack