sync_shared 类
介绍同步筛选器,它使用互斥体来控制对所有分配器共享的缓存对象的访问。
语法
template <class Cache>
class sync_shared
参数
缓存
与同步筛选器相关联的缓存类型。 可以是 cache_chunklist
、cache_freelist
或 cache_suballoc
。
成员函数
成员函数 | 说明 |
---|---|
allocate | 分配内存块。 |
deallocate | 从指定位置开始从存储中释放指定数量的的对象。 |
equals | 比较两个缓存是否相等。 |
要求
标头:<allocators>
命名空间: stdext
sync_shared::allocate
分配内存块。
void *allocate(std::size_t count);
参数
count
数组中要分配的元素数目。
返回值
指向已分配对象的指针。
备注
成员函数会锁定互斥体,调用 cache.allocate(count)
、解除对互斥体的锁定并返回之前调用 cache.allocate(count)
的结果。 cache
表示当前缓存对象。
sync_shared::deallocate
从指定位置开始从存储中释放指定数量的的对象。
void deallocate(void* ptr, std::size_t count);
参数
ptr
指向要从存储中释放的第一个对象的指针。
count
要从存储中释放的对象数量。
备注
此成员函数会锁定互斥体,调用 cache.deallocate(ptr, count)
其中 cache
表示缓存对象),然后取消对该互斥体的锁定。
sync_shared::equals
比较两个缓存是否相等。
bool equals(const sync_shared<Cache>& Other) const;
参数
缓存
与同步筛选器相关联的缓存类型。
其他
要比较是否相等的缓存。
返回值
如果 cache.equals(Other.cache)
的结果为 true
(其中 cache
表示缓存对象),则为 true
;否则为 false
。