Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O objeto combinable<T> destina-se a fornecer cópias de dados privados de thread para executar subcomputações locais de thread sem bloqueio durante algoritmos paralelos. No final da operação paralela, as subcomputações exclusivas de thread podem ser integradas em um resultado final. Essa classe pode ser usada em vez de uma variável compartilhada e poderá resultar em uma melhoria de desempenho se, de outra forma, houver muita contenção nessa variável compartilhada.
Sintaxe
template<typename T>
class combinable;
Parâmetros
T
O tipo de dados do resultado final mesclado. O tipo deve ter um construtor de cópia e um construtor padrão.
Membros
Construtores públicos
| Nome | Descrição |
|---|---|
| Combinado | Sobrecarregado. Constrói um novo objeto combinable. |
| Destrutor combinável | Destrói um objeto combinable. |
Métodos públicos
| Nome | Descrição |
|---|---|
| clear | Limpa todos os resultados computacionais intermediários de um uso anterior. |
| combine | Calcula um valor final do conjunto de subcomputações locais de thread chamando o functor de combinação fornecido. |
| combine_each | Calcula um valor final do conjunto de subcomputações locais de thread chamando o functor de combinação fornecido uma vez para cada subcomputação local de thread. O resultado final é acumulado pelo objeto de função. |
| local | Sobrecarregado. Retorna uma referência à subcomputação específica da thread. |
Operadores públicos
| Nome | Descrição |
|---|---|
| operator= | Atribui a um objeto combinable a partir de outro objeto combinable. |
Comentários
Para mais informações, confira Contêineres e objetos paralelos.
Hierarquia de herança
combinable
Requisitos
Cabeçalho: ppl.h
Namespace: simultaneidade
desmarcar
Limpa todos os resultados computacionais intermediários de um uso anterior.
void clear();
Combinável
Constrói um novo objeto combinable.
combinable();
template <typename _Function>
explicit combinable(_Function _FnInitialize);
combinable(const combinable& _Copy);
Parâmetros
_Function
O tipo do objeto functor de inicialização.
_FnInitialize
Uma função que será chamada para inicializar cada novo valor privado de thread do tipo T. Ele deve dar suporte a um operador de chamada de função com a assinatura T ().
_Copy
Um objeto combinable existente a ser copiado neste objeto.
Comentários
O primeiro construtor inicializa novos elementos com o construtor padrão para o tipo T.
O segundo construtor inicializa novos elementos usando o functor de inicialização fornecido como o parâmetro _FnInitialize.
O terceiro construtor é o construtor de cópia.
~Combinável
Destrói um objeto combinable.
~combinable();
combinar
Calcula um valor final do conjunto de subcomputações locais de thread chamando o functor de combinação 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 functor usado para combinar as subcomputações. 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 privadas de thread.
combine_each
Calcula um valor final do conjunto de subcomputações locais de thread chamando o functor de combinação fornecido uma vez para cada 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 único subprocessamento local de thread.
_FnCombine
O functor usado para combinar uma subcomputação. Sua assinatura é void (T) ou void (const T&), e deve ser associativa e comutativa.
local
Retorna uma referência à subcomputação específica da thread.
T& local();
T& local(bool& _Exists);
Parâmetros
_Exists
Uma referência a um booliano. O valor booliano referenciado por esse argumento será definido como true se a subcomputação já existir nesse thread, e será definido como false se essa for a primeira subcomputação nesse thread.
Valor de retorno
Uma referência à subcomputação privada de thread.
operator=
Atribui a um objeto combinable a partir de outro objeto combinable.
combinable& operator= (const combinable& _Copy);
Parâmetros
_Copy
Um objeto combinable existente que será copiado neste objeto.
Valor de retorno
Uma referência a esse objeto combinable.