std::pmr::synchronized_pool_resource
在标头
<memory_resource> 定义 |
||
class synchronized_pool_resource : public std::pmr::memory_resource;
|
(C++17 起) | |
类 std::pmr::synchronized_pool_resource
是一种具有下列属性的通用内存资源类:
- 它拥有被分配内存并在析构时释放它,即使对于某些被分配块未调用
deallocate
也是如此。 - 它由供应不同块大小请求的池的汇集组成。每个池管理之后被分入一致大小的区段的汇集。
- 对 do_allocate 的调用被派发到供应适应请求大小的最小块的池。
- 池中耗尽内存时,会导致该池从上游分配器分配额外的内存区段,以填满池。获取的区段大小以几何级数增加。
- 超出最大的块大小的分配请求,由上游分配器直接供应。
- 最大的块大小和区段大小的最大值可通过向其构造函数传递 std::pmr::pool_options 结构体予以调节。
synchronized_pool_resource
可以从多个线程不经同步地访问,并可拥有线程指定的池以减少同步成本。若内存资源只从单个线程访问,则 unsynchronized_pool_resource 更有效率。
成员函数
构造 synchronized_pool_resource (公开成员函数) |
|
[虚]
|
销毁 synchronized_pool_resource ,释放所有已分配内存(虚公开成员函数) |
operator=
[弃置]
|
复制赋值运算符被弃置。synchronized_pool_resource 不可复制赋值(公开成员函数) |
公开成员函数 |
|
释放所有分配的内存 (公开成员函数) |
|
返回指向上游内存资源的指针 (公开成员函数) |
|
返回控制此资源分池行为的选项 (公开成员函数) |
|
受保护成员函数 |
|
[虚]
|
分配内存 (虚受保护成员函数) |
[虚]
|
返还内存到池 (虚受保护成员函数) |
[虚]
|
与另一 memory_resource 比较相等性(虚受保护成员函数) |