Compartir a través de


sync_per_thread (Clase)

Describe un filtro de sincronización que proporciona un objeto de caché independiente para cada subproceso.

Sintaxis

template <class Cache>
class sync_per_thread

Parámetros

Cache
El tipo de caché asociado al filtro de sincronización. Puede ser cache_chunklist, cache_freelist o cache_suballoc.

Comentarios

Los asignadores que usan sync_per_thread pueden ser iguales, aunque no se puede cancelar la asignación de bloques asignados en un subproceso desde otro subproceso. Cuando se usa uno de estos asignadores, los bloques de memoria asignados en un subproceso no deberían ser visibles para otros subprocesos. En la práctica, esto significa que un contenedor que usa uno de estos asignadores solo puede estar disponible para el acceso para un único subproceso.

Funciones miembro

Función de miembro Descripción
allocate Asigna un bloque de memoria.
deallocate Libera un número especificado de objetos del almacenamiento, a partir de la posición especificada.
equals Compara dos cachés para determinar si son iguales.

Requisitos

Encabezado:<allocators>

Espacio de nombres: stdext

sync_per_thread::allocate

Asigna un bloque de memoria.

void *allocate(std::size_t count);

Parámetros

count
El número de elementos de la matriz que se van a asignar.

Comentarios

La función miembro devuelve el resultado de una llamada a cache::allocate(count) en el objeto de caché que pertenece al subproceso actual. Si no se asignó ningún objeto de caché para el subproceso actual, primero asigna uno.

sync_per_thread::d eallocate

Libera un número especificado de objetos del almacenamiento, a partir de la posición especificada.

void deallocate(void* ptr, std::size_t count);

Parámetros

ptr
Un puntero al primer objeto que se va a desasignar del almacenamiento.

count
El número de objetos que se van a desasignar del almacenamiento.

Comentarios

La función miembro llama a deallocate en el objeto de caché que pertenece al subproceso actual. Si no se asignó ningún objeto de caché para el subproceso actual, primero asigna uno.

sync_per_thread::equals

Compara dos cachés para determinar si son iguales.

bool equals(const sync<Cache>& Other) const;

Parámetros

Cache
El objeto de caché del filtro de sincronización.

Otros
El objeto de caché para comparar la igualdad.

Valor devuelto

false si no se asignó ningún objeto de caché para este objeto o para Other en el subproceso actual. De lo contrario, devuelve el resultado de aplicar operator== a los dos objetos de caché.

Comentarios

Consulte también

<allocators>