Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.