[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

[reverbel-mac438] Bounded buffer com notify no lugar de notifyAll



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/