Java Concurrency In Practice के अनुसार असीम धागा निर्माण के निम्नलिखित नुकसान कर रहे हैं:
थ्रेड lifecyle भूमि के ऊपर
धागा निर्माण और टियरडाउन मुक्त नहीं हैं। थ्रेड निर्माण में समय लगता है, और JVM और OS द्वारा कुछ प्रोसेसिंग गतिविधि की आवश्यकता होती है।
संसाधन खपत
सक्रिय धागे प्रणाली संसाधनों का उपभोग, विशेष रूप से स्मृति। जब उपलब्ध प्रोसेसर की तुलना में अधिक चलने योग्य धागे होते हैं, तो थ्रेड निष्क्रिय रहते हैं। कई निष्क्रिय धागे होने से कचरा कलेक्टर पर दबाव डालने, और सीपीयू के लिए प्रतिस्पर्धा करने वाले कई धागे होने से अन्य प्रदर्शन लागत भी लगा सकती है। यदि आपके पास सभी सीपीयू व्यस्त रखने के लिए पर्याप्त धागे हैं, तो अधिक थ्रेड बनाने से मदद नहीं मिलेगी और इससे भी चोट लग सकती है।
स्थिरता
कितने धागे बनाया जा सकता है पर एक सीमा होती है। सीमा प्लेटफ़ॉर्म द्वारा भिन्न होती है और जेवीएम इनवोकेशन पैरामीटर, थ्रेड कन्स्ट्रक्टर में अनुरोधित स्टैक आकार और अंतर्निहित ऑपरेटिंग सिस्टम द्वारा रखे थ्रेड पर सीमा सहित कारकों से प्रभावित होती है। जब आप एचटीआईएस सीमा को दबाते हैं, तो सबसे अधिक संभावना परिणाम आउटऑफमेमरी एरर होता है। ऐसी त्रुटि से पुनर्प्राप्त करने की कोशिश करना बहुत जोखिम भरा है; इस सीमा को मारने से बचने के लिए अपने कार्यक्रम को संरचित करना कहीं अधिक आसान है।
एक निश्चित बिंदु तक, अधिक धागे प्रवाह क्षमता में सुधार कर सकते, लेकिन उस समय अधिक धागे बनाने से सिर्फ आपके आवेदन को धीमा कर देती है, और बनाने एक धागा भी कई बुरी दुर्घटना के लिए अपने पूरे आवेदन पैदा कर सकता है। खतरे से बाहर रहने का तरीका यह है कि आपके आवेदन के कितने धागे पैदा होते हैं, और यह सुनिश्चित करने के लिए कि यह सीमा कब तक पहुंच जाती है, यह संसाधनों से बाहर नहीं निकलता है, यह सुनिश्चित करने के लिए कि आप अपने आवेदन का कितना धागा तैयार करते हैं, इस पर कुछ बाध्य होना है।
असंबद्ध थ्रेड सृजन प्रोटोटाइपिंग और विकास के दौरान ठीक काम करने के लिए प्रतीत होता है, जिसमें समस्या तब होती है जब एप्लिकेशन तैनात किया जाता है और भारी भार के तहत होता है।