"Hei, Amigo! Jeg ser at du gjør store fremskritt med å lære om tråder."

— Det var ikke så vanskelig likevel.

Det er flott! I dag har du en enkel leksjon, og temaet er bli med metoden.

Tenk deg følgende situasjon: hovedtråden har opprettet en undertråd for å utføre en oppgave. Tiden går, og nå trenger hovedtråden resultatene av arbeidet utført av barnetråden. Men barnetråden er ennå ikke ferdig. Hva skal hovedtråden gjøre?

Godt spørsmål. Hva skal hovedtråden gjøre?

"Dette er hva sammenføyningsmetoden er til for. Den lar oss få en tråd til å vente mens en annen tråd fullfører arbeidet:"

Kode Beskrivelse
class Printer implements Runnable
{
private String name;
public Printer(String name)
{
this.name = name;
}
public void run()
{
System.out.println("I’m " + this.name);
}
}
Klasse som implementerer Runnable-grensesnittet.
public static void main(String[] args)
{
Printer printer1 = new Printer("Nick");
Thread thread1 = new Thread(printer1);
thread1.start();

thread1.join();
}
Hovedtråden lager en undertråd – tråd1 .

Deretter starter den ved å kalle tråd1 .start();

Og så venter den på at den skal fullføres – thread1.join();

En tråd kan kalle sammenføyningsmetoden på en andre tråds trådobjekt. Som et resultat stopper den første tråden (som kalte metoden) arbeidet til den andre tråden (hvis objektets sammenføyningsmetode ble kalt) er ferdig.

Vi må skille mellom to ting her: vi har en tråd (et eget utførelsesmiljø) og vi har et trådobjekt.

"Det er det?"

"Ja."

"Men hvorfor må vi opprette en tråd og deretter umiddelbart vente på at den skal fullføres?"

"Det er kanskje ikke nødvendig med en gang. Det kan være etter at det har gått litt tid. Etter å ha startet sin første underordnede tråd, kan hovedtråden tildele mange flere oppgaver til andre tråder (ved å opprette dem og kalle opp startmetoden ) . Så når den har ikke noe arbeid igjen, må den behandle resultatene av den første underordnede tråden. Når du trenger å vente på at en annen tråd skal fullføre arbeidet, må du kalle sammenføyningsmetoden . "

"Har det."