Namensräume
Varianten
Aktionen

std::pmr::unsynchronized_pool_resource

Von cppreference.com
< cpp‎ | memory
 
 
Speicherverwaltungsbibliothek
(nur Exposition*)
Algorithmen für uninitialisierten Speicher
(C++17)
(C++17)
(C++17)
Beschränkte uninitialisierte
Speicher-Algorithmen
C-Bibliothek

Allocatoren
Speicherressourcen
pmr::unsynchronized_pool_resource
(C++17)
Unterstützung für Garbage Collection
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
Uninitialisierter Speicher
Explizites Lebenszeitmanagement
 
 
Definiert in Header <memory_resource>
class unsynchronized_pool_resource : public std::pmr::memory_resource;
(seit C++17)

Die Klasse std::pmr::unsynchronized_pool_resource ist eine allgemeine Speicherressourcenklasse mit den folgenden Eigenschaften:

  • Sie besitzt den zugewiesenen Speicher und gibt ihn bei der Zerstörung frei, auch wenn deallocate nicht für alle zugewiesenen Blöcke aufgerufen wurde.
  • Sie besteht aus einer Sammlung von Pools, die Anfragen für verschiedene Blockgrößen bedienen. Jeder Pool verwaltet eine Sammlung von Chunks, die dann in Blöcke einheitlicher Größe unterteilt werden.
  • Aufrufe von do_allocate werden an den Pool weitergeleitet, der die kleinsten Blöcke für die angeforderte Größe bereitstellt.
  • Wenn der Speicher im Pool erschöpft ist, weist die nächste Speicheranforderung für diesen Pool einen zusätzlichen Speicher-Chunk vom Upstream-Allocator zu, um den Pool wieder aufzufüllen. Die Größe des erhaltenen Chunks erhöht sich geometrisch.
  • Speicheranforderungen, die die größte Blockgröße überschreiten, werden direkt vom Upstream-Allocator bedient.
  • Die größte Blockgröße und die maximale Chunk-Größe können durch Übergabe einer std::pmr::pool_options Struktur an ihren Konstruktor angepasst werden.

unsynchronized_pool_resource ist nicht Thread-sicher und kann nicht gleichzeitig von mehreren Threads aufgerufen werden; verwenden Sie synchronized_pool_resource, wenn der Zugriff von mehreren Threads erforderlich ist.

[bearbeiten] Member-Funktionen

konstruiert eine unsynchronized_pool_resource
(public member function) [bearbeiten]
[virtuell]
zerstört eine unsynchronized_pool_resource und gibt allen zugewiesenen Speicher frei
(virtual public member function) [bearbeiten]
operator=
[gelöscht]
copy assignment operator ist gelöscht. unsynchronized_pool_resource ist nicht kopierbar
(public member function) [bearbeiten]
Öffentliche Memberfunktionen
gibt allen zugewiesenen Speicher frei
(public member function) [bearbeiten]
gibt einen Zeiger auf die Upstream-Speicherressource zurück
(public member function) [bearbeiten]
gibt die Optionen zurück, die das Pooling-Verhalten dieser Ressource steuern
(public member function) [bearbeiten]
Geschützte Memberfunktionen
[virtuell]
alloziiert Speicher
(virtual protected member function) [bearbeiten]
[virtuell]
gibt Speicher an den Pool zurück
(virtual protected member function) [bearbeiten]
[virtuell]
Vergleich auf Gleichheit mit einer anderen std::pmr::memory_resource
(virtual protected member function) [bearbeiten]