Conheça algumas maneiras para saber se a thread retornou ou não de seu método run()

Este exemplo demonstra algumas maneiras para determinar se uma thread retornou ou não de seu método run().

// Cria e inicia a thread
Thread thread = new MyThread(); thread.start();




------------------------- 1º EXEMPLO -------------------------

// Verifica se a thread terminou de uma forma não bloqueante if (thread.isAlive()) { // A thread não terminou seu processamento
} else { // A thread terminou seu processamento }




------------------------- 2º EXEMPLO -------------------------
// Espera que a thread termine, mas não espera mais do que um tempo determinado
long delayMillis = 5000; // 5 segundos try { thread.join(delayMillis); if (thread.isAlive()) { // Tempo excedido; Thread ainda não terminou seu processamento } else { // A thread terminou } } catch (InterruptedException e) { // Thread foi interrompida por alguma excessão lançada
}
------------------------- 3º EXEMPLO -------------------------
// Espera indefinidamente pelo final de processamento da thread try { thread.join(); // Thread terminou seu processamento
} catch (InterruptedException e) { // Thread foi interrompida por alguma excessão lançada
}