Dela via


sync_per_thread-klass

Beskriver ett synkroniseringsfilter som tillhandahåller ett separat cacheobjekt för varje tråd.

Syntax

template <class Cache>
class sync_per_thread

Parameterar

Cache
Den typ av cache som är associerad med synkroniseringsfiltret. Det kan vara cache_chunklist, cache_freelisteller cache_suballoc.

Anmärkningar

Allokerare som använder sync_per_thread kan jämföra lika med även om block som allokerats i en tråd inte kan frigöras från en annan tråd. När du använder någon av dessa allokerare bör minnesblock som allokerats i en tråd inte göras synliga för andra trådar. I praktiken innebär det att en container som använder en av dessa allokerare endast ska nås av en enda tråd.

Medlemsfunktioner

Medlemsfunktion Beskrivning
allokera Allokerar ett minnesblock.
frigöra Frigör ett angivet antal objekt från lagring som börjar på en angiven position.
är lika med Jämför två cacheminnen för likhet.

Kravspecifikation

Rubrik:<allokerare>

Namnområde: stdext

sync_per_thread::allokera

Allokerar ett minnesblock.

void *allocate(std::size_t count);

Parameterar

antal
Antalet element i matrisen som ska allokeras.

Anmärkningar

Medlemsfunktionen returnerar resultatet av ett anrop till cache::allocate(count) på cacheobjektet som tillhör den aktuella tråden. Om inget cacheobjekt har allokerats för den aktuella tråden allokerar det först ett.

sync_per_thread::d eallocate

Frigör ett angivet antal objekt från lagring som börjar på en angiven position.

void deallocate(void* ptr, std::size_t count);

Parameterar

ptr
En pekare till det första objektet som frigörs från lagringen.

antal
Antalet objekt som ska frigöras från lagringen.

Anmärkningar

Medlemsfunktionen anropar deallocate cacheobjektet som tillhör den aktuella tråden. Om inget cacheobjekt har allokerats för den aktuella tråden allokerar det först ett.

sync_per_thread::equals

Jämför två cacheminnen för likhet.

bool equals(const sync<Cache>& Other) const;

Parameterar

Cache
Cacheobjektet för synkroniseringsfiltret.

Övrigt
Cacheobjektet som ska jämföras för likhet.

Returvärde

false om inget cacheobjekt har allokerats för det här objektet eller för Övrigt i den aktuella tråden. Annars returneras resultatet av att tillämpa operator== på de två cacheobjekten.

Se även

<allokerare>