Thread - problema Semafaro

1 resposta
J

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.

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());
        }
    }
}

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

1 Resposta

J

Bom dia,

Estou tendo dificuldades para implementar no método main a classe Semaphore.
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();
        }
}

Agradeço desde já,

Criado 8 de março de 2009
Ultima resposta 9 de mar. de 2009
Respostas 1
Participantes 1