sync_per_thread-Klasse
Beschreibt einen Synchronisierungsfilter, der für jeden Thread ein getrenntes Cache-Objekt bereitstellt.
Syntax
template <class Cache>
class sync_per_thread
Parameter
Cache
Der Cachetyp, der diesem Synchronisierungsfilter zugeordnet werden soll. Es kann sich um cache_chunklist
, cache_freelist
oder cache_suballoc
handeln.
Hinweise
Zuweisungen, die sync_per_thread
verwenden, können identisch sein, auch wenn die Zuweisung von in einem Thread zugewiesenen Blöcken nicht von einem anderen Thread aufgehoben werden kann. Wenn mit einer der Zuweisungen verwendet wird, sollten in einem Thread zugewiesene Speicherblöcke nicht für andere Threads sichtbar gemacht werden. In der Praxis bedeutet dies, dass nur ein einzelner Thread auf einen Container zugreifen kann, der eine der folgenden Zuweisungen verwendet.
Memberfunktionen
Memberfunktion | Beschreibung |
---|---|
allocate | Belegt einen Speicherblock. |
deallocate | Gibt eine angegebene Anzahl von Objekten im Speicher frei, beginnend an einer angegebenen Position. |
equals | Vergleicht zwei Caches auf Gleichheit. |
Anforderungen
Header:<allocators>
Namespace: stdext
sync_per_thread::zuweisung
Belegt einen Speicherblock.
void *allocate(std::size_t count);
Parameter
count
Die Anzahl der zuzuweisenden Elemente im Array
Hinweise
Die Memberfunktion gibt das Ergebnis eines Aufrufs von cache::allocate(count)
auf dem Cache-Objekt zurück, das zu dem aktuellen Thread gehört. Wenn kein Cache-Objekt für den aktuellen Thread zugewiesen wurde, wird zuerst eines zugewiesen.
sync_per_thread::d eallocate
Gibt eine angegebene Anzahl von Objekten im Speicher frei, beginnend an einer angegebenen Position.
void deallocate(void* ptr, std::size_t count);
Parameter
ptr
Ein Zeiger auf das erste Objekt, dessen Zuweisung zum Speicher aufgehoben werden soll.
count
Die Anzahl von Objekten, deren Zuweisung zum Speicherplatz aufgehoben werden soll.
Hinweise
Die Memberfunktion ruft deallocate
auf dem Cache-Objekt auf, das zu dem aktuellen Thread gehört. Wenn kein Cache-Objekt für den aktuellen Thread zugewiesen wurde, wird zuerst eines zugewiesen.
sync_per_thread::equals
Vergleicht zwei Caches auf Gleichheit.
bool equals(const sync<Cache>& Other) const;
Parameter
Cache
Das Cache-Objekt des Synchronisierungsfilters.
Andere
Das Cache-Objekt, das auf Gleichheit verglichen werden soll.
Rückgabewert
false
wenn für dieses Objekt oder für Other im aktuellen Thread kein Cacheobjekt zugewiesen wurde. Andernfalls wird das Ergebnis der Anwendung von operator==
auf die beiden Cache-Objekte zurückgegeben.