Applet Produtor-Consumidor: Classe PC

        A classe PC é considerada a classe pai, ou seja, ao chamarmos ela, por exemplo num browser, ela declara as variáveis e instâncias de classes necessárias à aplicação, definido seus atributos e iniciando as threads da aplicação.

        Assim como os processos de produção e consumo necessitavam ser herdeiros da classe thread, a classe PC necessita herdar características da classe Applet, para poder ser visualizada num browser.

        Em contrapartida, a classe Applet exige que sejam criados métodos específicos, entre os quais o public void init (), que é invocado quando o browser inicia o applet Java, e cuja função é inicializar as variáveis e instâncias necessárias ao Applet.

        Se o objetivo da aplicação não fosse ser exibido em um browser, Java considera o método main() como responsável pela inicialização da aplicação.


public class PC extends Applet {
    private B memoria_critica;

    public void init () { // Método que inicializa um applet
        // Inicializa a memória crítica e os processos que vão operá-la
        memoria_critica = new B ();

        // Criação das threads produtoras
        for (int i=1; i<=(pamount.intValue()); ++i)
            MakeProducer(i);

        // Criação das threads consumidoras
        for (int i=1; i<=(camount.intValue()); ++i)
            MakeConsumer(i);
    }

    private void MakeProducer (int i) {
        // declara thread do tipo P
        P produtor = new P (memoria_critica, i);
        // roda thread
        produtor.start();
    }

    private void MakeConsumer (int i) {
        // declara thread do tipo C
        C consumidor = new C (memoria_critica, i);
        // roda thread
        consumidor.start();
    }

}