Olá galera
Estou com uma seguinte dúvida
Quando eu chamo em um código new Thread().start() e logo em seguinda new Thread().join() eu forço a thread que está rodando no momento executar a thread que eu iniciei até o final?
exemplo
public class Teste {
public static void main(String args[]){
Thread t = new Thread(new Teste().new MyThread());
System.out.println("Olá");
t.start();
try{
t.join();
}catch(Exception e){
}
for(int i=0; i<1000; i++)
System.out.println("Olá2");
}
class MyThread implements Runnable{
public void run() {
System.out.println("Olá Thread");
}
}
}
com esse código é GARANTIDO que a mensagem Olá Thread SEMPRE vai ser exibida após a mensagem Olá ?
Ou foi pura coincidência eu rodar o código 10 vezes e as 10 vezes ela ser exibida da mesma maneira, a mensagem Olá Thread exibida logo após a mensagem Olá
Outra dúvida qual o efeito desse código?
public class Teste {
public static void main(String args[]){
Thread t = new Thread(new Teste().new MyThread());
System.out.println("Olá");
t.start();
for(int i=0; i<1000; i++)
System.out.println("Olá2");
try{
t.join();
}catch(Exception e){
}
}
class MyThread implements Runnable{
public void run() {
System.out.println("Olá Thread");
}
}
Eu interpreto dessa maneira, quando o controlador de threads começar executar a thread MyThread ele vai executar até o final e só depois a thread principal vai finalizar a sua operação
Estou correto?
Att.