"Hej, Amigo! Jag ser att du gör stora framsteg när det gäller att lära dig om trådar."

— Det var inte så svårt trots allt.

Toppen! Idag har du en enkel lektion, och ämnet är gå med metoden.

Föreställ dig följande situation: huvudtråden har skapat en undertråd för att utföra en uppgift. Tiden går, och nu behöver huvudtråden resultaten av det arbete som utförs av barntråden. Men barntråden har ännu inte avslutat sitt arbete. Vad ska huvudtråden göra?

Bra fråga. Vad ska huvudtråden göra?

"Det här är vad kopplingsmetoden är till för. Den tillåter oss att få en tråd att vänta medan en annan tråd avslutar sitt arbete:"

Koda Beskrivning
class Printer implements Runnable
{
private String name;
public Printer(String name)
{
this.name = name;
}
public void run()
{
System.out.println("I’m " + this.name);
}
}
Klass som implementerar gränssnittet Runnable.
public static void main(String[] args)
{
Printer printer1 = new Printer("Nick");
Thread thread1 = new Thread(printer1);
thread1.start();

thread1.join();
}
Huvudtråden skapar en undertråd – tråd1 .

Sedan startar den genom att anropa tråd1 .start();

Och sedan väntar den på att den ska slutföras – thread1.join();

En tråd kan anropa joinmetoden på en andra tråds trådobjekt. Som ett resultat avbryter den första tråden (som kallades metoden) sitt arbete tills den andra tråden (vars objekts sammanfogningsmetod kallades) är klar.

Vi måste skilja mellan två saker här: vi har en tråd (en separat exekveringsmiljö) och vi har ett Thread-objekt.

"Det är allt?"

"Ja."

"Men varför måste vi skapa en tråd och sedan omedelbart vänta på att den ska slutföras?"

"Det kanske inte behöver göras direkt. Det kan vara efter att en tid har gått. Efter att ha startat sin första underordnade tråd kan huvudtråden tilldela många fler uppgifter till andra trådar (genom att skapa dem och anropa startmetoden ). Sedan när den inte har något arbete kvar, det måste bearbeta resultatet av den första underordnade tråden. När du behöver vänta på att en annan tråd ska slutföra arbetet måste du anropa join- metoden ."

"Jag fattar."