sync_per_thread 类

描述为每个线程提供单独的缓存对象的同步筛选器

语法

template <class Cache>
class sync_per_thread

参数

缓存
与同步筛选器相关联的缓存类型。 可以是 cache_chunklistcache_freelistcache_suballoc

备注

使用 sync_per_thread 的分配器可比较相等,尽管不能从一个线程释放另一个线程中分配的块。 使用其中一个分配器时,任一线程中的内存块都不应对其他线程可见。 实际上,这意味着单个线程只能访问使用其中一个分配器的容器。

成员函数

成员函数 说明
allocate 分配内存块。
deallocate 从指定位置开始从存储中释放指定数量的的对象。
equals 比较两个缓存是否相等。

要求

标头:<allocators>

命名空间: stdext

sync_per_thread::allocate

分配内存块。

void *allocate(std::size_t count);

参数

count
数组中要分配的元素数目。

备注

在属于当前线程的缓存对象上,成员函数将返回调用 cache::allocate(count) 的结果。 如果没有为当前线程分配任何缓存对象,它首先会分配一个缓存对象。

sync_per_thread::deallocate

从指定位置开始从存储中释放指定数量的的对象。

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

参数

ptr
指向要从存储中释放的第一个对象的指针。

count
要从存储中释放的对象数量。

备注

在属于当前线程的缓存对象上,成员函数调用 deallocate。 如果没有为当前线程分配任何缓存对象,它首先会分配一个缓存对象。

sync_per_thread::equals

比较两个缓存是否相等。

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

参数

缓存
同步筛选器的缓存对象。

其他
要用于比较是否相等的缓存对象。

返回值

如果没有为该对象或当前线程中的 Other 分配任何缓存对象,则为 false。 否则,它会返回将 operator== 应用到两个缓存对象的结果。

注解

另请参阅

<allocators>