"हॅलो, अमिगो! मी पाहतो की तुम्ही थ्रेड्सबद्दल शिकण्यात चांगली प्रगती करत आहात."
"शेवटी ते इतके अवघड नव्हते."
खूप छान आहे! आज तुमच्याकडे एक सोपा धडा आहे, आणि विषय आहे सामील होण्याची पद्धत.
खालील परिस्थितीची कल्पना करा: मुख्य थ्रेडने काही कार्य करण्यासाठी चाइल्ड थ्रेड तयार केला आहे. वेळ निघून जातो, आणि आता मुख्य थ्रेडला चाइल्ड थ्रेडद्वारे केलेल्या कार्याचे परिणाम आवश्यक आहेत. पण चाइल्ड थ्रेडने अजून काम पूर्ण केलेले नाही. मुख्य धाग्याने काय करावे?
चांगला प्रश्न. मुख्य धाग्याने काय करावे?
" जॉइन पद्धत यासाठीच आहे. हे आम्हाला एका थ्रेडचे काम पूर्ण करत असताना प्रतीक्षा करण्यास अनुमती देते:"
कोड | वर्णन |
---|---|
|
धावण्यायोग्य इंटरफेस लागू करणारा वर्ग. |
|
मुख्य थ्रेड चाइल्ड थ्रेड तयार करतो - थ्रेड1 .
मग ते थ्रेड1 .start(); आणि मग ते पूर्ण होण्याची प्रतीक्षा करते - thread1.join(); |
एक थ्रेड दुसर्या थ्रेडच्या थ्रेड ऑब्जेक्टवर जोडण्याच्या पद्धतीला कॉल करू शकतो. परिणामी, पहिला थ्रेड (ज्याला मेथड म्हणतात) त्याचे काम थांबवते जोपर्यंत दुसरा थ्रेड (ज्याच्या ऑब्जेक्टची जॉईन पद्धत म्हटले जाते) पूर्ण होत नाही.
येथे आपल्याला दोन गोष्टींमध्ये फरक करणे आवश्यक आहे: आपल्याकडे एक थ्रेड आहे (स्वतंत्र अंमलबजावणी वातावरण) आणि आपल्याकडे थ्रेड ऑब्जेक्ट आहे.
"बस एवढेच?"
"हो."
"पण धागा तयार करून लगेच तो पूर्ण होण्याची वाट का पाहायची?"
"त्याची लगेच गरज भासणार नाही. काही वेळ निघून गेल्यावर हे असू शकते. त्याचा पहिला चाइल्ड थ्रेड सुरू केल्यानंतर, मुख्य थ्रेड इतर थ्रेड्सना (त्यांना तयार करून आणि स्टार्ट मेथडला कॉल करून) आणखी बरीच कामे नियुक्त करू शकतो . नंतर जेव्हा ते कोणतेही काम शिल्लक नाही, त्याला पहिल्या चाइल्ड थ्रेडच्या निकालांवर प्रक्रिया करणे आवश्यक आहे. जेव्हा तुम्हाला दुसर्या थ्रेडचे काम पूर्ण होण्याची प्रतीक्षा करावी लागेल, तेव्हा तुम्हाला जॉइन पद्धत कॉल करणे आवश्यक आहे . "
"समजले."