Thread - problema Semafaro

Boa tarde,

Estou estudando Java, gostaria de saber se o código comentado representa a parte do semafaro no programa?-Não seria nesta parte que comentei no código abaixo, pois é nela que a execução será bloqueada por algum tempo através do “sleep()”?

  • O professor pediu para mostrar, mas neste programa não possui nada de semáforo no trecho do código.

[code]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(e.getMessage());
        } 

        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 (String args[ ]) {
Carro carroA = new Carro (“Barrichelo”);
Carro carroB = new Carro (“Schumacher”);
carroB.start( );
carroA.start( );
try {
carroA.join( );
} catch (Exception e) {
System.out.println(e.getMessage());
}
try {
carroB.join( );
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
[/code]

Agradeço desde já,
Júnio César Silva

Bom dia,

Estou tendo dificuldades para implementar no método main a classe Semaphore.

[code]class Semaphore {
int count;

    Semaphore(int c) {
            count = c;
    }

    public synchronized void P() {
            while (count <= 0)
                    try {
                            wait();
                    } catch (InterruptedException e) {}
            count--;
    }

    public void V() {
            count++;
            notify();
    }

}
[/code]

Agradeço desde já,