Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Egy szinkronizálási szűrőt ír le, amely minden szálhoz külön gyorsítótár-objektumot biztosít.
Szemantika
template <class Cache>
class sync_per_thread
Paraméterek
Gyorsítótár
A szinkronizálási szűrőhöz társított gyorsítótár típusa. Lehet cache_chunklist, cache_freelistvagy cache_suballoc.
Megjegyzések
A használt sync_per_thread kiosztók egyenlőek lehetnek, annak ellenére, hogy az egyik szálban lefoglalt blokkokat nem lehet felszabadítani egy másik szálról. Ezen kiosztók egyikének használatakor az egyik szálban lefoglalt memóriablokkokat nem szabad láthatóvá tenni a többi szál számára. A gyakorlatban ez azt jelenti, hogy egy ilyen kiosztót használó tárolóhoz csak egyetlen szál férhet hozzá.
Tagfüggvények
| Tagfüggvény | Leírás |
|---|---|
| lefoglal | Memóriablokkot foglal le. |
| felszabadítás | Meghatározott számú objektumot szabadít fel a tárterületről egy adott pozíciótól kezdve. |
| Egyenlő | Az egyenlőség két gyorsítótárát hasonlítja össze. |
Követelmények
Fejléc:<kiosztók>
Névtér: stdext
sync_per_thread::lefoglalás
Memóriablokkot foglal le.
void *allocate(std::size_t count);
Paraméterek
gróf
A lefoglalni kívánt tömb elemeinek száma.
Megjegyzések
A tagfüggvény az aktuális szálhoz tartozó gyorsítótár-objektumra cache::allocate(count) irányuló hívás eredményét adja vissza. Ha az aktuális szálhoz nincs gyorsítótárobjektum lefoglalva, először lefoglal egyet.
sync_per_thread::d eallocate
Meghatározott számú objektumot szabadít fel a tárterületről egy adott pozíciótól kezdve.
void deallocate(void* ptr, std::size_t count);
Paraméterek
ptr
Mutató az első tárolóból felszabadítandó objektumra.
gróf
A tárolóból felszabadítandó objektumok száma.
Megjegyzések
A tagfüggvény meghívja deallocate az aktuális szálhoz tartozó gyorsítótár-objektumot. Ha az aktuális szálhoz nincs gyorsítótárobjektum lefoglalva, először lefoglal egyet.
sync_per_thread::equals
Az egyenlőség két gyorsítótárát hasonlítja össze.
bool equals(const sync<Cache>& Other) const;
Paraméterek
Gyorsítótár
A szinkronizálási szűrő gyorsítótárobjektuma.
Más
Az egyenlőség szempontjából összehasonlítandó gyorsítótár-objektum.
Visszaadott érték
false ha nincs gyorsítótárobjektum lefoglalva ehhez az objektumhoz vagy az aktuális szál egyéb objektumaihoz. Ellenkező esetben a két gyorsítótár-objektumra való alkalmazás operator== eredményét adja vissza.