Compartir a través de


combinable Clase

El objeto combinable<T> está diseñado para proporcionar copias privadas de datos de subprocesos, para realizar subcálculos locales de subprocesos sin bloqueos durante algoritmos paralelos. Al final de la operación paralela, los subcálculos privados de hilo pueden combinarse en un resultado final. Esta clase se puede utilizar en lugar de una variable compartida y puede dar lugar a una mejora en el rendimiento que, de lo contrario, daría lugar a mucha contención en esa variable compartida.

Sintaxis

template<typename T>
class combinable;

Parámetros

T
Tipo de datos del resultado combinado final. El tipo debe tener un constructor de copia y un constructor predeterminado.

Miembros

Constructores públicos

Nombre Descripción
combinable Sobrecargado Construye un nuevo objeto combinable.
~combinable Destructor Destruye un objeto combinable .

Métodos públicos

Nombre Descripción
eliminar Borra los resultados de cálculo intermedios de un uso anterior.
combine Calcula un valor final a partir del conjunto de subprocesos locales del subproceso llamando al functor de combinación suministrado.
combine_each Calcula un valor final a partir del conjunto de subcálculos locales del hilo llamando al functor de combinación proporcionado una vez por cada subcálculo local del hilo. El resultado final se acumula mediante el objeto de función.
local Sobrecargado Devuelve una referencia a la subcálculo privada del hilo.

Operadores públicos

Nombre Descripción
operator= Asigna a un objeto combinable a partir de otro objeto combinable.

Comentarios

Para más información, consulte Contenedores y objetos paralelos.

Jerarquía de herencia

combinable

Requisitos

Encabezado: ppl.h

Espacio de nombres: simultaneidad

eliminar

Borra los resultados de cálculo intermedios de un uso anterior.

void clear();

combinable

Construye un nuevo objeto combinable.

combinable();

template <typename _Function>
explicit combinable(_Function _FnInitialize);

combinable(const combinable& _Copy);

Parámetros

_Function
Tipo del objeto functor de inicialización.

_FnInitialize
Función que se llamará para inicializar cada nuevo valor privado del hilo del tipo T. Debe admitir un operador de llamada de función con la firma T ().

_Copy
Objeto existente combinable que se va a copiar en este.

Comentarios

El primer constructor inicializa nuevos elementos con el constructor predeterminado para el tipo T.

El segundo constructor inicializa nuevos elementos mediante el functor de inicialización proporcionado como parámetro _FnInitialize.

El tercer constructor es el constructor de copia.

combinable

Destruye un objeto combinable .

~combinable();

combinar

Calcula un valor final a partir del conjunto de subprocesos locales del subproceso llamando al functor de combinación suministrado.

template<typename _Function>
T combine(_Function _FnCombine) const;

Parámetros

_Function
Tipo del objeto de función que se invocará para combinar dos computaciones locales de hilo.

_FnCombine
Functor que se usa para combinar los subprocesos. Su firma es T (T, T) o T (const T&, const T&), y debe ser asociativa y conmutativa.

Valor devuelto

Resultado final de la combinación de todas las sub-computaciones privadas de hilo.

combine_each

Calcula un valor final a partir del conjunto de subcálculos locales del hilo llamando al functor de combinación proporcionado una vez por cada subcálculo local del hilo. El resultado final se acumula mediante el objeto de función.

template<typename _Function>
void combine_each(_Function _FnCombine) const;

Parámetros

_Function
Tipo del objeto de función que se invocará para combinar una única sub-computación local a un hilo.

_FnCombine
Functor que se usa para combinar un subproceso. Su firma es void (T) o void (const T&), y debe ser asociativa y conmutativa.

local

Devuelve una referencia a la subcálculo privada del hilo.

T& local();

T& local(bool& _Exists);

Parámetros

_Exists
Referencia a un booleano. El valor booleano al que hace referencia este argumento se establecerá en true si el subproceso ya existía en este subproceso y se establecerá en false si este era el primer subproceso en este subproceso.

Valor devuelto

Referencia a la subcomputación privada del subproceso.

operador =

Asigna a un objeto combinable a partir de otro objeto combinable.

combinable& operator= (const combinable& _Copy);

Parámetros

_Copy
Objeto existente combinable que se va a copiar en este.

Valor devuelto

Una referencia a este objeto combinable.

Consulte también

espacio de nombres de concurrencia