2 Die Methode Thread.join()

Submitted by javafrage on Wed, 02/15/2012 - 08:24

Was bewirkt die Befehlszeile t1.join() im folgenden Programm?
Geben Sie eine kurze Erklärung.

public class ThreadTest1 extends Thread{
   public void run() {
     System.out.println("run: " + Thread.currentThread());
   }
 
public static void main(String[] args) {
System.out.println("main: Anfang "+ Thread.currentThread());
ThreadTest1 t1= new ThreadTest1();
ThreadTest1 t2= new ThreadTest1();
t1.run();
t1.start();
try {
t1.join(); // Was bewirkt diese Programmzeile?
} catch( InterruptedException i) {
}
System.out.println("main: Ende "+ Thread.currentThread());
}
}

Die Antwort finden Sie auf der nächsten Seite (URL rechts unten klicken).

Niveau 2
Schwierigkeitsgrad mittel
Zeit 2 Minuten

Antwort zur Frage 1: Threading

Hinweis: Der Quellcode von Frage 2.16 ist identisch zum Quellcode der Frage 2.17 auf dieser Seite oben.

Das Programm produziert die folgende Konsolenausgabe:

main:Anfang main
run: main
run: t1
main:Ende main

Der Thread t2 wird zwar erzeugt aber nie gestartet.