2009-10-08 17 views
5

पर विचार करें कि मेरे पास एक मुख्य थ्रेड है जो एक नए थ्रेड में एक नया रननेबल निष्पादित करता है। अब, जबकि नया थ्रेड निष्पादित हो रहा है, जावा वीएम मेमोरी से बाहर हो जाता है और आउटऑफमेमरी एरर फेंकता है।आउटऑफ मेमरी एरर एक अलग जावा थ्रेड

क्या होता है? क्या लक्ष्य धागा रुकता है? मुख्य धागा जारी रहेगा? जब नया थ्रेड दुर्घटनाग्रस्त हो जाता है, तो क्या वीएम उसमें से स्मृति को पुनः प्राप्त करेगा और निष्पादन जारी रहेगा?

उत्तर

7

new के आवंटन भाग के दौरान धागे में से एक OutOfMemoryError फेंक देगा। थ्रैशिंग से बचने के लिए, त्रुटि फेंकने के बाद स्मृति की एक बड़ी मात्रा होने की संभावना है। तो अन्य धागे आगे बढ़ सकते हैं, और एक अवधि के लिए ओओएमई की संभावना नहीं है।

यदि ओओएमई पकड़ा नहीं गया है, तो धागा बाहर निकल जाएगा और बेजोड़ अपवाद हैंडलर बुलाया जाएगा। बाहर निकलने पर थ्रेड और संबंधित ऑब्जेक्ट्स सामान्य रूप से कचरा संग्रह के लिए उपलब्ध होंगे (अन्य माध्यमों द्वारा संदर्भित नहीं किया जा सकता है)।

संबंधित मुद्दे