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é.