Freigeben über


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.

Hinweise

Siehe auch

<allocators>