【文件属性】:
文件名称:sa
文件大小:11.96MB
文件格式:ZIP
更新时间:2021-02-11 23:58:34
C++
对象分配器
属性
分配器用于单个对象大小
适用于并发环境
在percpu基础上同步
用法
alloc::object_allocator
; T是您要管理的对象
T * _allocate()返回指向sizeof(T)区域的指针
void _free(T * addr)释放给定的指针
动机
无锁数据结构通常通过原子CAS进行同步。 在x86-64上,硬限制为8个字节。 对于要在复杂对象(大于8个字节)上进行操作的无锁数据结构,通常这意味着对对象的指针进行操作。 由于对象无法存储在数据结构内的内存中,因此通常会给分配器带来沉重的负担。 这意味着它是一个合理的快速分配器,可以处理高并发性,而不会扩展问题。