命名空间
变体
操作

std::pmr::synchronized_pool_resource

来自 cppreference.com
< cpp‎ | memory
 
 
动态内存管理
未初始化内存算法
约束未初始化内存算法
分配器
垃圾收集支持
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)



 
 
定义在头文件 <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 效率更高。

[edit] 成员函数

构造 synchronized_pool_resource
(公有成员函数) [edit]
销毁 synchronized_pool_resource,释放所有分配的内存
(虚拟公有成员函数) [edit]
operator=
[已删除]
复制赋值运算符已删除。synchronized_pool_resource 不可复制赋值
(公有成员函数) [edit]
公有成员函数
释放所有分配的内存
(公有成员函数) [edit]
返回指向上游内存资源的指针
(公有成员函数) [edit]
返回控制此资源的池行为的选项
(公有成员函数) [edit]
保护成员函数
[虚拟]
分配内存
(虚拟保护成员函数) [edit]
将内存返回到池
(虚拟保护成员函数) [edit]
[虚拟]
与另一个 memory_resource 进行相等比较
(虚拟保护成员函数) [edit]