मैं इसjava.lang.OutOfMemoryError: नई देशी धागा बनाने में असमर्थ
Sun Java Forumsone place i have seen this problem is if you keep creating threads, and instead of calling start(), call run() directly on the thread object. This will result in the thread object not getting dereferenced... So after sometime the message unable to create new native thread comes up
अपने आवेदन में पर
की तरह टिप्पणी को देखा, initialy हम धागा उपयोग करने की योजना है, लेकिन बाद, हमने तय किया अब और आवश्यकता नहीं है, इसलिए हम केवल शुरू() के बजाए रन() को कॉल करते हैं। क्या हमें नए थ्रेड क्लास (..) के लिए मैन्युअल जीसी करने की ज़रूरत है?
मेरी बिल्ला स्टार्टअप की स्थापना
-Xms1024m -Xmx1024m -XX:MaxPermSize=450m
लेकिन, यदि आप शुरू करने के बजाए रन() को उत्साहित करते हैं() JVM एक नया थ्रेड नहीं बनाएगा। यही है ना – sourcerebels
सहमत हुए। तो भले ही मैं अपनी सेवा परत विधि पर नया थ्रेड क्लास (..) का उपयोग करता हूं, मैन्युअल साफ करने की आवश्यकता नहीं है? – cometta
आपको टोमकैट (एक वेब सर्वर) के अंदर थ्रेड बनाने की आवश्यकता क्यों है? यह अनुशंसित नहीं है। वैकल्पिक समाधान खोजने का प्रयास करें: 1) आरएमआई, जेएमएस या डेटाबेस के माध्यम से संचारित धागे के साथ एक अलग स्टैंडअलोन प्रक्रिया; 2) शायद आपके वेब एप्लिकेशन के अंदर MessageDrivenBeans और JMS का उपयोग करके, यदि आप JBEE, Glassfish या Geronimo जैसे J2EE ऐप सर्वर में बदलने के साथ ठीक हैं; 3) अन्य ... :) – helios