E aí galera, to com um problemão em java na facul.
Professor tá passando muito rápido a materia então ainda não consegui entender direito essa questão de semáforos e concorrência no geral, to tendo que me virar pra aprender rápido.
Aí em um trabalho que ele passou, ele fala pra retirar o semáforo desse código e explicar o que acontece. Primeiro eu queria saber onde está o semáforo nesse código? seria o método join, que espera a thread atual terminar antes de iniciar a outra?
desculpem se a pergunta for muito idiota… =P
class Carro extends Thread {
public Carro(String nome) {
super(nome);
}
public void run( ) {
for (int i=0; i<10; i++) {
try {
sleep((int)(Math.random( )*100));
}
catch (Exception e) {
};
System.out.println(getName( ));
for (int j=0; j<i; j++)
System.out.print(?--?);
System.out.println(?>?);
}
System.out.println(getName( ) + ? completou a prova.?);
}
}
public class Corrida {
public static void main (Dtring args[ ]) {
Carro carroA = new Carro (?Barrichelo?);
Carro carroB = new Carro (?Schumacher?);
carroA.start( );
carroB.strat( );
try {
carroA.join( );
} catch (Exception e) {
}
try {
carroB.join( );
} catch (Exception e) {
}
}
}