std::experimental::pmr::unsynchronized_pool_resource

来自cppreference.com
 
 
 
 
 
class unsynchronized_pool_resource : public memory_resource;
(库基础 TS)

std::experimental::pmr::unsynchronized_pool_resource 是一种通用目的的内存资源类,具有下列性质:

  • 它拥有所分配的内存,并在析构时将之释放,即便对某些已分配块并未调用 deallocate 也是如此。
  • 它由一组服务于不同块大小请求的池子构成。每个池子管理一组区段,并将它们切分为统一大小的块。
  • do_allocate 的调用被派发给提供适用于所请求大小的最小块的池子。
  • 耗尽池子中内存将导致对此池子的下一次分配请求从上游分配器分配一个额外区段来填充池子。获取的区段大小以指数规律增长。
  • 超出最大块大小的分配请求,直接由上游分配器提供服务。
  • 可以通过向构造函数传递 std::experimental::pmr::pool_options 结构体来调节最大的块大小和最大区段大小。

unsynchronized_pool_resource 并非线程安全,不能从多个线程同时访问;当需要从多个线程访问时,应当使用 synchronized_pool_resource

成员函数

构造 unsynchronized_pool_resource
(公开成员函数)
销毁 unsynchronized_pool_resource,释放所有已分配内存
(虚公开成员函数)
operator=
[弃置]
复制赋值运算符被弃置。unsynchronized_pool_resource 不可复制赋值
(公开成员函数)
公开成员函数
释放所有已分配内存
(公开成员函数)
返回指向上游内存资源的指针
(公开成员函数)
返回控制此资源的池化行为的选项
(公开成员函数)
受保护成员函数
分配内存
(虚受保护成员函数)
将内存返回池子
(虚受保护成员函数)
比较与另一 memory_resource 的相等性
(虚受保护成员函数)