Sdílet prostřednictvím


sync_per_thread – třída

Popisuje synchronizační filtr , který poskytuje samostatný objekt mezipaměti pro každé vlákno.

Syntaxe

template <class Cache>
class sync_per_thread

Parametry

Cache
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
allocate Přidělí blok paměti.
uvolnit Uvolní zadaný počet objektů od úložiště počínaje zadanou pozicí.
equals Porovná dvě mezipaměti pro rovnost.

Požadavky

Záhlaví:<alokátory>

Namespace: stdext

sync_per_thread::přidělení

Přidělí blok paměti.

void *allocate(std::size_t count);

Parametry

count
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ě.

count
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

Cache
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.

Poznámky

Viz také

<alokátory>