Partilhar via


Classe combinável

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.

Consulte também

concorrência Namespace