Olá a todos!
Preciso de uma ajuda para criar um programa que imprima ABC usando 3 threads, cada thread escrevendo uma letra. Tem que imprimir na ordem ABC sempre.
Aguns detalhes, o programa principal só pode criar os objetos e dar o start neles, e não pode usar sleep, tem que ser o join. E o join não pode estar dentro do programa principal.
Fiz o seguinte:
public class Escrever extends Thread
{
private String letra;
public Escrever(String letra)
{
this.letra = letra;
}
@Override
public void run ()
{
try
{
if ( letra == "A")
{
this.join(100);
System.out.print(letra);
}
else if ( letra == "B")
{
this.join(200);
System.out.print(letra);
}
else if ( letra == "C")
{
this.join(300);
System.out.print(letra);
}
}
catch (InterruptedException ie)
{
ie.printStackTrace();
}
}
}
public class TestaEscrever {
public static void main(String[] args)
{
Escrever letra1 = new Escrever("A");
Escrever letra2 = new Escrever("B");
Escrever letra3 = new Escrever("C");
letra1.start();
letra2.start();
letra3.start();
}
}
Os codigos acima escrevem ABC sempre, mais o professor disse que está errada, não pode ser implementado assim passando os parametros para o metodo join.
Alguém teria uma ideia de como posso implementar da maneira correta ? Lembrando que tem que ser usando join, e não pode suar join dentro do programa principal.
Obrigado,
Filipe