package javacodebook.thread.join; import java.util.Random; /** * Demonstation der Möglichkeit, einen Thread auf andere Threads warten zu * lassen. Die main()-Routine wartet solange, bis alle Threads ihre Arbeit * erledigt haben, bevor sie sich selber - und damit das Programm - beendet. */ public class JoinedThread extends Thread { public JoinedThread(String name) { super(name); } public void run() { // Der Thread zeigt 10 mal an, dass er lebt und legt sich zwischendurch // für eine zufällige Zeit zwischen 0 und 1 Sekunde schlafen. for (int i=0; i<10; i++) { // Ein Lebenszeichen des Thread. System.out.println(getName() + ": " + i ); } System.out.println(getName() + ": fertig"); } public static void main(String []args) throws Exception { // Zur Verdeutlichung der Nebenläufigkeit werden zwei Threads erzeugt // und anschliessend gestartet. JoinedThread s1 = new JoinedThread("Anton"); JoinedThread s2 = new JoinedThread("Berta"); // Jetzt gehts los. Die Threads werden gestartet. s1.start(); s2.start(); // Das Hauptprogramm wartet darauf, dass beide Threads ihre Arbeit // erledigt haben und nicht mehr ausgeführt werden. s1.join(); s2.join(); System.out.println("Main: fertig"); } }