जेएमएस उपभोक्ता बनाने और उसके संदेश श्रोता को सेट करने के लिए थ्रेड चलाने का कोई कारण नहीं है। एक जेएमएस संदेश श्रोता का पूरा बिंदु संदेश को असीमित रूप से प्राप्त करना है (कार्यक्षमता जिसे आप किसी कारण से डुप्लिकेट करने का प्रयास कर रहे हैं)।
आपको बस जेएमएस उपभोक्ता बनाना होगा और संदेश श्रोता सेट करना होगा और फिर सुनिश्चित करना होगा कि उपभोक्ता बंद नहीं है। एप्लिकेशन को कैसे लिखा जाता है, इसके आधार पर कभी-कभी while
. होना आवश्यक होता है यह सुनिश्चित करने के लिए लूप करें कि प्रोग्राम समाप्त नहीं होता है और इसलिए उपभोक्ता को बंद कर देता है। आपका धागा ऐसा नहीं कर रहा है। यह 5 सेकंड के लिए संदेशों की प्रतीक्षा करने के बाद उपभोक्ता को दायरे से बाहर होने दे रहा है जिसका अर्थ है कि यह कचरा एकत्र किया जाएगा और मैं अधिकांश जेएमएस कार्यान्वयन की अपेक्षा करता हूं जिसका अर्थ है कि यह बंद हो जाएगा। हालांकि यह इससे भी बुरा हो सकता है। उपभोक्ता को स्पष्ट रूप से बंद न करने और इसे दायरे से बाहर होने देने से आप उपभोक्ताओं को लीक कर सकते हैं जो अंततः आपके संदेश दलाल को रोक देगा। यह न केवल मैला प्रोग्रामिंग है, बल्कि संदेशों का उपभोग करने की कोशिश कर रहे अन्य उपयोगकर्ताओं के लिए संभावित रूप से समस्याग्रस्त है।