Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Popisuje synchronizační filtr , který poskytuje samostatný objekt mezipaměti pro každé vlákno.
Syntaxe
template <class Cache>
class sync_per_thread
Parametry
Mezipaměť
Typ mezipaměti přidružené k synchronizačnímu filtru. Může to být cache_chunklist, cache_freelistnebo cache_suballoc.
Poznámky
Alokátory, které používají sync_per_thread , můžou porovnávat stejné, i když bloky přidělené v jednom vlákně nelze uvolnit z jiného vlákna. Při použití jednoho z těchto alokátorů bloky paměti přidělené v jednom vlákně by neměly být viditelné pro ostatní vlákna. V praxi to znamená, že ke kontejneru, který používá jeden z těchto alokátorů, by měl přistupovat jenom jedno vlákno.
Členské funkce
| Členová funkce | Popis |
|---|---|
| přidělit | Přidělí blok paměti. |
| uvolnit | Uvolní zadaný počet objektů od úložiště počínaje zadanou pozicí. |
| se rovná | Porovná dvě mezipaměti pro rovnost. |
Požadavky
Záhlaví:<alokátory>
Obor názvů: stdext
sync_per_thread::přidělení
Přidělí blok paměti.
void *allocate(std::size_t count);
Parametry
počet
Počet prvků v poli, které se mají přidělit.
Poznámky
Členová funkce vrátí výsledek volání cache::allocate(count) objektu mezipaměti, který patří do aktuálního vlákna. Pokud nebyl pro aktuální vlákno přidělen žádný objekt mezipaměti, nejprve ho přidělí.
sync_per_thread::d eallocate
Uvolní zadaný počet objektů od úložiště počínaje zadanou pozicí.
void deallocate(void* ptr, std::size_t count);
Parametry
ptr
Ukazatel na první objekt, který se má uvolnit z úložiště.
počet
Počet objektů, které se mají uvolnit z úložiště.
Poznámky
Členová funkce volá deallocate objekt mezipaměti patřící do aktuálního vlákna. Pokud nebyl pro aktuální vlákno přidělen žádný objekt mezipaměti, nejprve ho přidělí.
sync_per_thread::equals
Porovná dvě mezipaměti pro rovnost.
bool equals(const sync<Cache>& Other) const;
Parametry
Mezipaměť
Objekt mezipaměti filtru synchronizace.
Další
Objekt mezipaměti, který se má porovnat s rovností.
Návratová hodnota
false Pokud nebyl pro tento objekt přidělen žádný objekt mezipaměti nebo pro jiné v aktuálním vlákně. V opačném případě vrátí výsledek použití operator== na dva objekty mezipaměti.