[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
- Subject: [reverbel-mac438] Bounded buffer com notify no lugar de notifyAll
- From: "Paulo ..." <paulofknegrao@xxxxxxxxxxxx>
- Date: Wed, 7 Jun 2006 22:19:14 -0300 (ART)
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/