1
resposta

Tem como a thread main saber quando todas as threads filhas terminaram sua execução?

Tem como a thread main saber quando todas as threads filhas terminaram sua execução?

Imagine que possuo uma thread main que precisa executar 3 consultas aos banco de dados em paralelo. Preciso juntar esses resultados e devolver para o cliente.

Vi que o uso do "join" é feito "amarrando" a thread principal a uma outra thread específica. Como tenho mais de uma thread não sei como fazê-lo.

Poderiam me ajudar?

1 resposta

Você pode verificar se a Thread está viva com o método Thread.isAlive()

https://docs.oracle.com/javase/6/docs/api/java/lang/Thread.html#isAlive()

public class JavaIsAliveExp extends Thread   
{  
    public void run()  
    {  
        try   
        {  
            Thread.sleep(300);  
            System.out.println("is run() method isAlive "+Thread.currentThread().isAlive());  
        }  
        catch (InterruptedException ie) {  
        }  
    }  
    public static void main(String[] args)  
    {  
        JavaIsAliveExp t1 = new JavaIsAliveExp();  
        System.out.println("before starting thread isAlive: "+t1.isAlive());  
        t1.start();  
        System.out.println("after starting thread isAlive: "+t1.isAlive());  
    }  
}  

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software