[size=18]
Olá pessoal, tô começando com Threads agora e ainda não fixei muito bem, novato, sabem como é…aqui vai a dúvida:
como faço para fazer com que Threads “corram juntas”, por exemplo numa corrida de cavalo com 5 cavalos? Onde o cavalo que chegar primeiro na linha de chegada é o vencedor;
Obrigado ai.[/size][color=darkblue] [/color]
Use o método “join” da classe java.lang.Thread para esperar o seu término (seria o equivalente da “linha de chegada”).
Você poderia dar um exemplo mais epecífico por favor?
como disse sou novato, e não entendo muito bem, obgdo!
Rode o programa abaixo e veja os cavalos chegando.
import java.util.*;
class Cavalo implements Runnable {
public Cavalo (String nome_) { nome = nome_; }
static Random r = new Random();
public void run () {
long t = System.currentTimeMillis();
try { Thread.sleep (r.nextInt (10000)); } catch (InterruptedException ex) {}
t = System.currentTimeMillis() - t;
System.out.println (nome + " chegou em " + t + " ms");
}
private String nome;
}
class CorridaCavalos {
public static void main(String[] args) throws InterruptedException {
Thread[] cavalos = new Thread [5];
cavalos[0] = new Thread (new Cavalo ("Joia da Coroa"));
cavalos[1] = new Thread (new Cavalo ("Princesa da Albania"));
cavalos[2] = new Thread (new Cavalo ("Duque de Windsor"));
cavalos[3] = new Thread (new Cavalo ("Chabuzinho"));
cavalos[4] = new Thread (new Cavalo ("Azarao"));
System.out.println ("Corrida iniciada!");
// Pondo os cavalos para correrem...
for (int i = 0; i < cavalos.length; ++i) {
cavalos [i].start();
}
// Esperando os cavalos chegarem...
for (int i = 0; i < cavalos.length; ++i) {
cavalos [i].join();
}
System.out.println ("Corrida terminada.");
}
}
Pronto assim ficou clarissímo! muito obrigado thingol!
problema resolvido.
Como faço para setar o tópico como resolvido? tem isso? obgd
Não, isso quem fazem são os moderadores…
[quote=thingol]Rode o programa abaixo e veja os cavalos chegando.
…
[/quote]
Me desculpe reviver este tópico tão antigo. Mas estou precisando de um conceito muito parecido com este do código.
Seria possível fazer uma corrida com outros animais? Criando classes separadas para cada animal e tendo uma classe principal apenas para executar a corrida ?
Obrigado
[quote=theporks][quote=thingol]Rode o programa abaixo e veja os cavalos chegando.
…
[/quote]
Me desculpe reviver este tópico tão antigo. Mas estou precisando de um conceito muito parecido com este do código.
Seria possível fazer uma corrida com outros animais? Criando classes separadas para cada animal e tendo uma classe principal apenas para executar a corrida ?
Obrigado[/quote]
Seria sim. Não há nada que te impeça de definir as classes como quiser.