"హలో, అమిగో! మీరు థ్రెడ్‌ల గురించి నేర్చుకోవడంలో గొప్ప పురోగతి సాధిస్తున్నారని నేను చూస్తున్నాను."

"ఇది అన్ని తరువాత చాలా కష్టం కాదు."

చాలా బాగుంది! ఈ రోజు మీకు సులభమైన పాఠం ఉంది మరియు అంశం చేరడం పద్ధతి.

కింది పరిస్థితిని ఊహించండి: ప్రధాన థ్రెడ్ కొంత పనిని నిర్వహించడానికి పిల్లల థ్రెడ్‌ను సృష్టించింది. సమయం గడిచిపోతుంది మరియు ఇప్పుడు ప్రధాన థ్రెడ్‌కు చైల్డ్ థ్రెడ్ చేసిన పని ఫలితాలు అవసరం. కానీ చైల్డ్ థ్రెడ్ ఇంకా పనిని పూర్తి చేయలేదు. ప్రధాన థ్రెడ్ ఏమి చేయాలి?

మంచి ప్రశ్న. ప్రధాన థ్రెడ్ ఏమి చేయాలి?

"దీని కోసం చేరడం పద్ధతి. ఇది ఒక థ్రెడ్‌ని వేచి ఉండేలా చేస్తుంది, మరొక థ్రెడ్ దాని పనిని పూర్తి చేస్తుంది:"

కోడ్ వివరణ
class Printer implements Runnable
{
private String name;
public Printer(String name)
{
this.name = name;
}
public void run()
{
System.out.println("I’m " + this.name);
}
}
రన్ చేయదగిన ఇంటర్‌ఫేస్‌ని అమలు చేసే తరగతి.
public static void main(String[] args)
{
Printer printer1 = new Printer("Nick");
Thread thread1 = new Thread(printer1);
thread1.start();

thread1.join();
}
ప్రధాన థ్రెడ్ చైల్డ్ థ్రెడ్‌ను సృష్టిస్తుంది - థ్రెడ్1 .

ఆ తర్వాత థ్రెడ్1 .స్టార్ట్();

ఆపై అది పూర్తయ్యే వరకు వేచి ఉంది - thread1.join();

ఒక థ్రెడ్ రెండవ థ్రెడ్ యొక్క థ్రెడ్ ఆబ్జెక్ట్‌లో చేరిక పద్ధతిని కాల్ చేయగలదు . ఫలితంగా, మొదటి థ్రెడ్ (దీనిని పద్ధతి అని పిలుస్తారు) రెండవ థ్రెడ్ (దీని వస్తువు యొక్క చేరిక పద్ధతి అని పిలుస్తారు) పూర్తయ్యే వరకు దాని పనిని ఆపివేస్తుంది.

మనం ఇక్కడ రెండు విషయాల మధ్య తేడాను గుర్తించాలి: మనకు థ్రెడ్ (ప్రత్యేక అమలు వాతావరణం) ఉంది మరియు మనకు థ్రెడ్ ఆబ్జెక్ట్ ఉంది.

"అంతే?"

"అవును."

"అయితే మనం థ్రెడ్‌ని ఎందుకు సృష్టించాలి మరియు అది పూర్తయ్యే వరకు వెంటనే వేచి ఉండాలి?"

"ఇది వెంటనే అవసరం లేదు. కొంత సమయం గడిచిన తర్వాత కావచ్చు. దాని మొదటి చైల్డ్ థ్రెడ్‌ను ప్రారంభించిన తర్వాత, ప్రధాన థ్రెడ్ ఇతర థ్రెడ్‌లకు (వాటిని సృష్టించడం మరియు ప్రారంభ పద్ధతికి కాల్ చేయడం ద్వారా ) మరిన్ని టాస్క్‌లను కేటాయించవచ్చు . పని ఏదీ మిగిలి లేదు, ఇది మొదటి చైల్డ్ థ్రెడ్ ఫలితాలను ప్రాసెస్ చేయాలి. మీరు మరొక థ్రెడ్ పనిని ముగించే వరకు వేచి ఉండాల్సిన అవసరం వచ్చినప్పుడు, మీరు చేరే పద్ధతికి కాల్ చేయాలి . "

"దొరికింది."