"नमस्कार, अमीगो! मैं देख रहा हूं कि आप थ्रेड्स के बारे में सीखने में काफी प्रगति कर रहे हैं।"
"आखिरकार यह इतना मुश्किल नहीं था।"
एक दम बढ़िया! आज आपके पास एक आसान पाठ है, और विषय है जुड़ने की विधि।
निम्नलिखित स्थिति की कल्पना करें: मुख्य थ्रेड ने कुछ कार्य करने के लिए चाइल्ड थ्रेड बनाया है। समय बीतता है, और अब मुख्य धागे को बच्चे के धागे द्वारा किए गए कार्य के परिणामों की आवश्यकता होती है। लेकिन चाइल्ड थ्रेड ने अभी तक अपना काम पूरा नहीं किया है। मुख्य धागा क्या करना चाहिए?
अच्छा प्रश्न। मुख्य धागा क्या करना चाहिए?
" जॉइन मेथड इसी के लिए है। यह हमें एक थ्रेड को प्रतीक्षा करने की अनुमति देता है जबकि दूसरा थ्रेड अपना काम पूरा करता है:"
कोड | विवरण |
---|---|
|
वर्ग जो रननेबल इंटरफ़ेस को लागू करता है। |
|
मुख्य धागा एक बाल धागा बनाता है - थ्रेड 1 ।
फिर यह इसे थ्रेड 1 कॉल करके शुरू करता है । प्रारंभ (); और फिर यह इसके पूरा होने का इंतजार करता है – thread1.join(); |
एक थ्रेड दूसरे थ्रेड के थ्रेड ऑब्जेक्ट पर जॉइन मेथड को कॉल कर सकता है। नतीजतन, पहला थ्रेड (जिसे मेथड कहा जाता है) अपना काम तब तक रोक देता है जब तक कि दूसरा थ्रेड (जिसकी ऑब्जेक्ट की जॉइन मेथड को कॉल नहीं किया गया था) समाप्त हो जाता है।
हमें यहां दो चीजों के बीच अंतर करने की जरूरत है: हमारे पास एक थ्रेड (एक अलग निष्पादन वातावरण) है और हमारे पास एक थ्रेड ऑब्जेक्ट है।
"इतना ही?"
"हाँ।"
"लेकिन हमें एक धागा क्यों बनाना है और फिर तुरंत पूरा होने की प्रतीक्षा करें?"
"इसे तुरंत करने की आवश्यकता नहीं हो सकती है। यह कुछ समय बीतने के बाद हो सकता है। अपना पहला चाइल्ड थ्रेड शुरू करने के बाद, मुख्य थ्रेड अन्य थ्रेड्स को कई और कार्य सौंप सकता है (उन्हें बनाकर और स्टार्ट मेथड को कॉल करके)। फिर जब यह कोई काम नहीं बचा है, इसे पहले चाइल्ड थ्रेड के परिणामों को संसाधित करने की आवश्यकता है। जब भी आपको काम खत्म करने के लिए किसी अन्य थ्रेड की प्रतीक्षा करने की आवश्यकता होती है, तो आपको जॉइन विधि को कॉल करने की आवश्यकता होती है।"
"समझ गया।"
GO TO FULL VERSION