std::experimental::pmr::synchronized_pool_resource
来自 cppreference.com
< cpp | experimental
class synchronized_pool_resource : public memory_resource; |
(库基础 TS) | |
类std::experimental::pmr::synchronized_pool_resource
是一个通用内存资源类,具有以下属性
- 它拥有分配的内存,并在销毁时释放它,即使对于一些分配的块,
deallocate
尚未被调用。 - 它包含一个池集合,用于为不同的块大小提供请求。每个池管理一组块,然后将这些块分成大小相同的块。
- 对do_allocate的调用将被调度到提供适合请求大小的最小块的池。
- 池中内存耗尽会导致该池的下一个分配请求从上游分配器分配额外的内存块来补充池。获取的块大小会呈几何级数增长。
- 超过最大块大小的分配请求将直接从上游分配器提供服务。
- 最大块大小和最大块大小可以通过将std::experimental::pmr::pool_options结构体传递给它的构造函数来调整。
synchronized_pool_resource
可以从多个线程访问而无需外部同步,并且可能具有线程特定的池以降低同步成本。如果内存资源仅从一个线程访问,则unsynchronized_pool_resource更有效。
[编辑] 成员函数
构造一个synchronized_pool_resource (公共成员函数) | |
[虚拟] |
销毁一个synchronized_pool_resource ,释放所有分配的内存(虚拟公共成员函数) |
operator= [已删除] |
复制赋值运算符已删除。synchronized_pool_resource 不可复制赋值(公共成员函数) |
公共成员函数 | |
释放所有分配的内存 (公共成员函数) | |
返回指向上游内存资源的指针 (公共成员函数) | |
返回控制此资源池行为的选项 (公共成员函数) | |
受保护的成员函数 | |
[虚拟] |
分配内存 (虚拟受保护的成员函数) |
[虚拟] |
将内存返回池 (虚拟受保护的成员函数) |
[虚拟] |
与另一个memory_resource 进行相等性比较(虚拟受保护的成员函数) |