[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Discussao interessante sobre broadcast



Olá,
	Este tipo de construção pode ser usado em casos onde é necessário
acordar mais do que uma tarefa (como por exemplo se o produtor fosse capaz
de produzir mais do que um item por vez). A mesma construção pode ser
usada quando não se quer dar prioridade para nenhuma das tarefas. Logo,
conforme o caso, a construção pode ser útil.

Alfredo

Guilherme O'Connor de Lungarzo writes:
 > Quoting Alfredo Goldman <gold@ime.usp.br>:
 > 
 > > Caso queira se trocar o signal pelo broadcast (que suponho equivalente
 > > ao signalall), uma alternativa é proteger o wait com um while da seguinte
 > > forma:
 > > 
 > >  > pthread_mutex_lock(&mutex_acesso_ao_buffer);
 > >  > while (buffer vazio)
 > >  >   pthread_cond_wait(&cond_buffer_tem_algo, &mutex_acesso_ao_buffer);
 > >  > faz algo com o conteúdo do buffer;
 > >  > pthread_mutex_unlock(&mutex_acesso_ao_buffer);
 > 
 > Agora uma duvida minha.
 > 
 > Tem algum beneficio em utilizar uma construcao desse tipo na pratica?
 > 
 >