Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O objeto combinable<T> destina-se a fornecer cópias privadas de dados por thread, para realizar subcomputações locais de thread sem bloqueios durante a execução de algoritmos paralelos. No final da operação paralela, as subcomputações privadas dos threads podem então ser fundidas num resultado consolidado. Esta classe pode ser usada em vez de uma variável partilhada e pode resultar numa melhoria de desempenho se, de outra forma, houver muita contenda nessa variável partilhada.
Sintaxe
template<typename T>
class combinable;
Parâmetros
T
O tipo de dado do resultado final fundido. O tipo deve ter um construtor de cópias e um construtor padrão.
Membros
Construtores Públicos
| Nome | Description |
|---|---|
| combinável | Sobrecarregado. Constrói um novo combinable objeto. |
| ~Destruidor combinável | Destrói um combinable objeto. |
Métodos Públicos
| Nome | Description |
|---|---|
| claro | Elimina quaisquer resultados computacionais intermédios de uma utilização anterior. |
| combinar | Calcula um valor final a partir do conjunto de subcomputações thread-local chamando o funtor combinado fornecido. |
| combine_each | Calcula um valor final a partir do conjunto de subcomputações locais de thread chamando o funtor de combinação fornecido uma vez por subcomputação local de thread. O resultado final é acumulado pelo objeto de função. |
| Local | Sobrecarregado. Devolve uma referência à subcomputação privada da thread. |
Operadores Públicos
| Nome | Description |
|---|---|
| operador= | Atribui um objeto combinable a partir de outro objeto combinable. |
Observações
Para mais informações, consulte Recipientes e Objetos Paralelos.
Hierarquia de herança
combinable
Requerimentos
Cabeçalho: ppl.h
Namespace: simultaneidade
desmarcar
Elimina quaisquer resultados computacionais intermédios de uma utilização anterior.
void clear();
combinável
Constrói um novo combinable objeto.
combinable();
template <typename _Function>
explicit combinable(_Function _FnInitialize);
combinable(const combinable& _Copy);
Parâmetros
_Function
O tipo do objeto funtor de inicialização.
_FnInitialize
Uma função que será chamada para inicializar cada novo valor privado de thread do tipo T. Deve suportar um operador de chamada de função com a assinatura T ().
_Copy
Um objeto existente combinable para ser copiado para dentro deste.
Observações
O primeiro construtor inicializa novos elementos com o construtor padrão para o tipo T.
O segundo construtor inicializa novos elementos usando o funtor de inicialização fornecido como _FnInitialize parâmetro.
O terceiro construtor é o construtor de cópia.
~combinável
Destrói um combinable objeto.
~combinable();
combinar
Calcula um valor final a partir do conjunto de subcomputações thread-local chamando o funtor combinado fornecido.
template<typename _Function>
T combine(_Function _FnCombine) const;
Parâmetros
_Function
O tipo do objeto de função que será invocado para combinar duas subcomputações locais de thread.
_FnCombine
O funtor que é usado para combinar as subcomputações. A sua assinatura é T (T, T) ou T (const T&, const T&), e deve ser associativa e comutativa.
Valor de retorno
O resultado final da combinação de todas as subcomputações específicas da thread.
combinar_cada
Calcula um valor final a partir do conjunto de subcomputações locais de thread chamando o funtor de combinação fornecido uma vez por subcomputação local de thread. O resultado final é acumulado pelo objeto de função.
template<typename _Function>
void combine_each(_Function _FnCombine) const;
Parâmetros
_Function
O tipo do objeto de função que será invocado para combinar um subcálculo local único da thread.
_FnCombine
O funtor que é usado para combinar uma subcomputação. A sua assinatura é void (T) ou void (const T&), e deve ser associativa e comutativa.
local
Devolve uma referência à subcomputação privada da thread.
T& local();
T& local(bool& _Exists);
Parâmetros
_Existe
Uma referência a um booleano. O valor booleano referenciado por este argumento será definido para true se a subcomputação já existisse neste fio, e definido para false se esta fosse a primeira subcomputação neste fio.
Valor de retorno
Uma referência à subcomputação privada de threads.
operador=
Atribui um objeto combinable a partir de outro objeto combinable.
combinable& operator= (const combinable& _Copy);
Parâmetros
_Copy
Um objeto existente combinable para ser copiado para dentro deste.
Valor de retorno
Uma referência a este combinable objeto.