11.07.2022

Threads, Ende feststellen


Ein Thread ist beendet, wenn die run()-Methode verlassen wurde.

Abfrage, bo Thread noch läuft:

// Einen Thread starten:
Thread thread = new MyThread();
thread.start();
 
// Abfragen, ob der Thread noch läuft:
if (thread.isAlive()) {
   // Thread läuft noch...
} else {
   // Thread ist beendet
}

Eine festgelegt Zeit auf den Thread warten:

// Einen Thread starten:
Thread thread = new MyThread();
thread.start();
 
// Eine festgelegte Zeit auf das Ende eines Threads warten:
long waitMillis = 10000; // 10 Sekunden
try {
   thread.join(waitMillis);
   if (thread.isAlive()) {
      // Die 10 Sekunden sind um; der Thread läuft noch
   } else {
      // Thread ist beendet
   }
} catch (InterruptedException e) {
   // Thread wurde abgebrochen
}

Warten bis der Thread beendet ist:

// Einen Thread starten:
Thread thread = new MyThread();
thread.start();
 
// Warten bis der Thread beendet ist: 
try {
   thread.join();
   // Code der hier steht wird abgearbeitet, wenn der Thread fertig ist.
} catch (InterruptedException e) {
   // Thread wurde abgebrochen
}