[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?
>
>