Programação Paralela em Arquiteturas Multi-Core/Ambientes de programação e bibliotecas: diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
Linha 243:
<font color="blue">}</font>
 
O metodo pop_if_present nao tem de ser thread safe para um dado fluxo (stream), porque parallel_while nunca o chama concorrentemente para o mesmo stream. Note que essa conveniencia faz parallel_while não ser escalavel, porque '''fetching''' é serializado. Mas em muitas situações, voce ainda pode obter speedup fazendo isso sequencialmente.
 
Há uma segunda maneira que é o parallel_while que pode ser trabalhado, e assim, torná-lo escalavel. O corpo de um parallel_while w - se a referencia dada para w quando isso for construido, pode ser adicionado para mais trabalho chamando w.add(item), onde o item é de um tipo Body::argument_type. Por exemplo, talvez processando um nodo na arvore seja um pre-requisito para processar seus descendentes. Com parallel_while, depois de processar um nodo voce pode usar parallel_while::add para adicionar nodos descendentes. A instancia de parallel_while nao termina até que todos os itens tenham sido processados.