A troca do notifyAll por um simples notify sem o if
apresentada na aula passada pode apresentar um
deadlock no determinado escalonamento de processos:
Para um buffer de capacidade 1, considere os
processos:
T1: take
T2: take
T3: put
T4: put
T1, T2, T3, T4, T2, T1
-T1 espera no wait, pois o buffer esta vazio.
-T2 espera no wait, pois o buffer esta vazio.
-T3 da put e notify en T2 e termina.
-T4 chega durante a execucao de T3, assume o controle
do monitor e espera no wait, pois o buffer esta cheio.
-T2 recebe o controle do monitor, notify em T1 e
termina.
-T1 continua no wait, pois o buffer esta vazio.
__________________________________________________
Fale com seus amigos de graça com o novo Yahoo! Messenger
http://br.messenger.yahoo.com/