"Helló, Amigo! Látom, nagyot haladsz a szálak megismerésében."

– Végül is nem volt olyan nehéz.

Nagyszerű! Ma könnyű leckéd van, a téma pedig a csatlakozási módszer.

Képzelje el a következő helyzetet: a főszál egy gyermekszálat hozott létre valamilyen feladat végrehajtásához. Az idő telik, és most a főszálnak szüksége van a gyermekszál által végzett munka eredményeire. De a gyermekszál még nem fejezte be a munkáját. Mit kell tennie a főszálnak?

Jó kérdés. Mit kell tennie a főszálnak?

"Erre való az összekapcsolási módszer. Lehetővé teszi, hogy az egyik szál várakozzon, amíg egy másik szál befejezi a munkáját:"

Kód Leírás
class Printer implements Runnable
{
private String name;
public Printer(String name)
{
this.name = name;
}
public void run()
{
System.out.println("I’m " + this.name);
}
}
A Runnable felületet megvalósító osztály.
public static void main(String[] args)
{
Printer printer1 = new Printer("Nick");
Thread thread1 = new Thread(printer1);
thread1.start();

thread1.join();
}
A főszál egy gyermekszálat hoz létre – thread1 .

Ezután elindítja a thread1 .start();

Aztán megvárja a befejezést – thread1.join();

Egy szál meghívhatja a csatlakozási metódust egy második szál Thread objektumán. Ennek eredményeként az első szál (amely a metódusnak nevezte) leállítja a munkáját, amíg a második szál (amelynek az objektum összekapcsolási metódusát hívták) be nem fejeződik.

Itt két dolgot kell megkülönböztetnünk: van egy szálunk (külön végrehajtási környezetünk) és egy Thread objektumunk.

"Ez az?"

"Igen."

"De miért kell létrehoznunk egy szálat, és azonnal várnunk kell, hogy befejeződjön?"

"Lehet, hogy nem kell azonnal. Lehet, hogy egy idő elteltével. Az első gyermekszál elindítása után a főszál sokkal több feladatot tud hozzárendelni más szálakhoz (létrehozva őket, és meghívja a start metódust). Majd amikor nincs hátra, fel kell dolgoznia az első gyermekszál eredményeit. Amikor meg kell várnia, amíg egy másik szál befejezi a működését, meg kell hívnia a csatlakozási metódust."

"Megvan."