Moin moin allerseits,
Folgendes sehe ich grad:
Mein Verständnis sieht wie folgt aus:
Nach dem Starten des CopyThread Konstruktors wird der Shutdownhook zunächst einem Thread t zugewiesen.
Dann startet die do-Schleife und kloppt fleißig Punkte in die Konsole.
Danach wird der Thread "zum Schlafen gebracht".
Wenn dann ein Programmabbruch erzeugt wird (Beendigung des Proggys, Runterfahren des Rechners...) wird die JVM mit nem Statuscode ungleich 0 beendet (signalisiert ein nicht reguläres Programmende).
Folgendes leuchtet mir noch nicht ganz ein:
1. Auf was bezieht sich die true-Bedingung in while(true) ?!
2. Wann wird der Shutdownhook genau ausgeführt? Nachdem die catch-Anweisung aktiviert wurde?
3. Wird die Anweisung "Thread.sleep(1)" in einer endlosschleife wiederholt? Sonst könnte das catch-Kommando ja nicht irgendwann einspringen?!
Wär echt super, wenn ihr nem Anfänger mal auf die Sprünge helfen könntet =).
Danke im Voraus!
Seb
Folgendes sehe ich grad:
Java:
public TransApp(String srcDir, String destDir) {
Thread t = new CopyThread("Transfer is waiting ...", srcDir, destDir);
Runtime.getRuntime().addShutdownHook(t);
do {
System.out.print(".");
try {
Thread.sleep(1);
}
catch (InterruptedException ie) {
Runtime.getRuntime().halt(1);
}
}
while (true);
}
Mein Verständnis sieht wie folgt aus:
Nach dem Starten des CopyThread Konstruktors wird der Shutdownhook zunächst einem Thread t zugewiesen.
Dann startet die do-Schleife und kloppt fleißig Punkte in die Konsole.
Danach wird der Thread "zum Schlafen gebracht".
Wenn dann ein Programmabbruch erzeugt wird (Beendigung des Proggys, Runterfahren des Rechners...) wird die JVM mit nem Statuscode ungleich 0 beendet (signalisiert ein nicht reguläres Programmende).
Folgendes leuchtet mir noch nicht ganz ein:
1. Auf was bezieht sich die true-Bedingung in while(true) ?!
2. Wann wird der Shutdownhook genau ausgeführt? Nachdem die catch-Anweisung aktiviert wurde?
3. Wird die Anweisung "Thread.sleep(1)" in einer endlosschleife wiederholt? Sonst könnte das catch-Kommando ja nicht irgendwann einspringen?!
Wär echt super, wenn ihr nem Anfänger mal auf die Sprünge helfen könntet =).
Danke im Voraus!
Seb