के अंदर अपवाद फेंकता है, तो कई थ्रेड महत्वपूर्ण खंड तक पहुंचने का प्रयास कर रहे हैं, एक थ्रेड जो होता है, सिंक्रनाइज़ किए गए ब्लॉक के अंदर अपवाद होता है जिसमें यह प्रतीक्षा() और सूचित() को लॉक करने और रिलीज़ करने के लिए होता है ।क्या होगा यदि थ्रेड सिंक्रनाइज़ ब्लॉक
उत्तर
सिंक्रनाइज़ेशन मॉनीटर जारी किया जाएगा: "यदि शरीर का निष्पादन कभी पूरा हो जाता है, या तो सामान्य रूप से या अचानक, उसी मॉनीटर पर अनलॉक कार्रवाई स्वचालित रूप से की जाती है।" जावा भाषा विशिष्टता 17.1. Synchronization।
अन्य धागे सिंक्रनाइज़ करना जारी रखने में सक्षम होंगे, और प्रतीक्षा और सूचित करेंगे।
यदि अपवाद के साथ धागा कुछ महत्वपूर्ण प्रोग्राम तर्क संसाधन धारण कर रहा है, तो आपको इसे जारी करने के लिए प्रयास करने की आवश्यकता हो सकती है।
जैसा कि बताया गया है कि कोई अपवाद होता है तो इसे निष्पादन जारी रखने के लिए संभाला/फेंक दिया जाना चाहिए या अन्य निष्पादन बंद हो जाएगा। तो, यह आपके परिदृश्य में समान है यदि कोई अपवाद होता है तो इसे संभाला जाएगा और आगे लॉक जारी किया जाएगा।
क्या होगा कि लॉक मैन्युअल रूप से रिलीज़ नहीं हुआ था। यदि कोई मृत ताले बनाता है –
आम तौर पर, हमें मृत ताले की संभावना से बचने के लिए सभी परिदृश्यों का ख्याल रखना चाहिए। यदि कोई मृत ताला लगाया जाता है तो हम एप्लिकेशन को पुनरारंभ करने के अलावा हमारे अंत से कुछ भी नहीं कर सकते हैं। डेडलॉक्स से बचने के लिए मैं आपको "जावा में इंटर-थ्रेड संचार" के बारे में पढ़ने का सुझाव देता हूं। –
@ विश्वनाथ डी ठीक है –
शायद आप संसाधनों (कनेक्शन, I/O) जैसे ताले के बारे में सोच रहे हैं लेकिन जैसे ही निष्पादन थ्रेड महत्वपूर्ण अनुभाग की निकास सीमा तक पहुंचता है (मॉनीटर/सिंक्रनाइज़ ब्लॉक बंद करने वाले कोष्ठक तक पहुंचता है)) अपवाद को फेंकने के बावजूद।
देखें: synchronized statement
ब्लॉक के निष्पादन के किसी भी कारण से अचानक पूरा करता है, तो मॉनिटर अनलॉक हो और सिंक्रनाइज़ बयान इसी कारण अचानक पूरा करती है।
तब लॉक स्वचालित रूप से रिलीज़ हो जाएगा –
हां, अपवाद के मामले में मॉनीटर अनलॉक हो गया है और 'सिंक्रनाइज़' कथन अचानक समाप्त हो जाता है जिससे लॉक (मॉनिटर) जारी हो जाता है। –
- 1. सिंक्रनाइज़ ब्लॉक
- 2. सिंक्रनाइज़ ब्लॉक - जावा
- 3. जावा थ्रेड्स और सिंक्रनाइज़ ब्लॉक
- 4. जावा में, सिंक्रनाइज़ ब्लॉक में थ्रेड स्विचिंग हो सकती है?
- 5. एनएसएमयूटेबलएरे संग्रह और @ सिंक्रनाइज़ किए गए ब्लॉक
- 6. जावा अस्थिर संशोधक और सिंक्रनाइज़ ब्लॉक
- 7. परमाणु बूलियन बनाम सिंक्रनाइज़ ब्लॉक
- 8. जावा थ्रेड ब्लॉक। क्या करें?
- 9. pthread_mutex_t वीएस @ सिंक्रनाइज़ ब्लॉक?
- 10. जावा थ्रेड "सिंक्रनाइज़"
- 11. एक कोशिश ब्लॉक के अंदर एक सिंक्रनाइज़ ब्लॉक या एक सिंक्रनाइज़ ब्लॉक के अंदर एक कोशिश ब्लॉक बेहतर है?
- 12. सिंक्रनाइज़ ब्लॉक में अप्रत्याशित कोड
- 13. सिंक्रनाइज़ अनुभाग ब्लॉक नहीं करता है!
- 14. उदाहरण कोड कैसे जावा सिंक्रनाइज़ ब्लॉक
- 15. सिंक्रनाइज़ (यह) बनाम सिंक्रनाइज़ (MyClass.class)
- 16. यदि थ्रेड
- 17. जावा: सिंक्रनाइज़ ब्लॉक पर प्रतीक्षा, जो पहले जाता है?
- 18. क्या होगा यदि फ़ंक्शन एप्लिकेशन टाइपक्लास था?
- 19. क्या होगा यदि नया विफल रहता है?
- 20. जावा सिंक्रनाइज़ ब्लॉक बनाम संग्रह। सिंक्रनाइज़ किए गए मैप
- 21. मल्टीथ्रेडेड शुद्धता: सिंक्रनाइज़ ब्लॉक का उपयोग
- 22. एक सिंक्रनाइज़ ब्लॉक के अंदर नए धागे का निष्पादन
- 23. यदि कोई थ्रेड मुख्य थ्रेड
- 24. जावा में एक सिंक्रनाइज़ विधि और सिंक्रनाइज़ ब्लॉक के बीच क्या अंतर है?
- 25. CUDA - यदि मैं बहुत सारे ब्लॉक चुनता हूं तो क्या होगा?
- 26. जावा: प्रतीक्षा करें(), सूचित करें() और सिंक्रनाइज़ किए गए ब्लॉक
- 27. यूआई थ्रेड ब्लॉक
- 28. UI थ्रेड के साथ कार्यकर्ता सिंक्रनाइज़ करना
- 29. सिंक्रनाइज़ वस्तु
- 30. यदि ब्लॉक बनाम स्विच-केस ब्लॉक
यह यहां उत्तर है, http://stackoverflow.com/questions/12521776/what-happens-to-the-lock-when-thread-crashes-inside-a-synchronized-block और http: // stackoverflow.com/questions/2019339/side-effects-of-throwing-an-exception-inside-a-synchronized-clause –
@KennethClark \t क्या होगा कि लॉक मैन्युअल रूप से जारी नहीं किया गया था। यदि कोई मृत ताले बनाता है –
लॉक सभी मामलों में समाप्त होने की गारंटी है –