UFMG - Pós-graduação em Ciência da
Computação -
Programação Paralela
A seguir: Consumer.java, Producer.java, Queue.java: Observações
Acima: Produtor/Consumidor em Java
Anterior: BufferApplet.java: Observações
- O ponto chave está no uso de synchronized em métodos
que são executados com exclusão mútua
- Todo método synchronized de um objeto realiza, no início
de sua execução, um
lock em uma chave implícita associada ao objeto, e ao terminar realiza
um unlock sobre esta mesma chave;
-
Existe também uma única cama associada ao objeto; o método wait()
libera a chave do objeto, e coloca o processo que o executa dormindo nesta
cama;
-
Um processo que executa wait pode ser despertado
- pela execução de notify() por um outro processo, ou
- pela ocorrência de uma exceção (que também pode provocada
por outro processo)
- A possibilidade de ocorrência da exceção força o uso de try e
catch
Osvaldo Carvalho