जावा दस्तावेज़ जो मैं उपयोग कर रहा हूं, यह स्पष्ट करता है कि Object.wait()
विधि संबंधित मॉनीटर को वापस लौटने से पहले पुनः प्राप्त करती है, भले ही इसे अधिसूचित किया गया हो या एक नकली जागरूकता हो; किसी भी सामान्य विधि रिटर्न की निगरानी मॉनीटर पुन: अधिग्रहण से की जाएगी।क्या ऑब्जेक्ट.वाइट() विधि मॉनीटर को पुनः प्राप्त करती है जब यह अपवाद फेंकता है?
हालांकि, यह Object.wait()
घटना में क्या होगा, इसके बारे में थोड़ा कम स्पष्ट है, उदाहरण के लिए, Interrupted Exception
। मैं यह कह रहा हूं कि अपवाद फेंकने से पहले यह वास्तव में लॉक को पुनः प्राप्त कर देता है। हालांकि, प्रलेखन इसके बारे में बहुत स्पष्ट नहीं है, इसलिए मैं नहीं कर रहा हूँ 100% यकीन है कि ...
यहाँ documentaiton मैं देख रहा हूँ है: http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html#wait%28%29
तो, मेरे अनुमान सही है, या क्या मेरे कॉलिंग कोड को मॉनिटर स्टेटस को संबोधित करने की आवश्यकता है (उदाहरण के लिए, यदि आवश्यक हो तो इसे पुनः प्राप्त करना) अपवाद के बाद फेंक दिया जाता है?
अनुभवजन्य, यह सही प्रतीत होता है। यह भी उचित है। मुझे यकीन नहीं है कि इसे दस्तावेज़ीकरण से लिया जा सकता है, जो एक दस्तावेज बग का सुझाव देता है। –
@ पेट्रीसियाहनहान मैंने जवाब को पूरी तरह से लिखा है: वास्तव में जेएलएस स्पष्ट रूप से स्पष्ट रूप से निर्दिष्ट करता है कि लॉक बिना शर्त रूप से पुनः प्राप्त किया जाएगा। –
@ पेट्रीसियाहानहान धन्यवाद, यह इसे स्पष्ट रूप से समझाता है। जेएलएस लिंक के लिए भी धन्यवाद ... अगली बार मेरे पास ऐसा ही सवाल होगा कि एपीआई दस्तावेज़ों का पता नहीं है। :) –