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