Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Opisuje filtr synchronizacji, który udostępnia oddzielny obiekt pamięci podręcznej dla każdego wątku.
Składnia
template <class Cache>
class sync_per_thread
Parametry
pamięci podręcznej
Typ pamięci podręcznej skojarzony z filtrem synchronizacji. Może to być cache_chunklist, cache_freelistlub cache_suballoc.
Uwagi
Alokatory, które używają sync_per_thread , mogą porównywać równe, mimo że bloki przydzielone w jednym wątku nie mogą zostać cofnięty z innego wątku. W przypadku używania jednego z tych bloków pamięci alokatorów przydzielonych w jednym wątku nie powinno być widoczne dla innych wątków. W praktyce oznacza to, że kontener używający jednego z tych alokatorów powinien mieć dostęp tylko do jednego wątku.
Funkcje składowe
| Funkcja składowa | opis |
|---|---|
| przydzielić | Przydziela blok pamięci. |
| Deallocate | Zwalnia określoną liczbę obiektów z magazynu rozpoczynającego się na określonej pozycji. |
| równa się | Porównuje dwie pamięci podręczne pod kątem równości. |
Wymagania
Nagłówek:<alokatory>
Przestrzeń nazw: stdext
sync_per_thread::przydziel
Przydziela blok pamięci.
void *allocate(std::size_t count);
Parametry
liczba
Liczba elementów w tablicy do przydzielenia.
Uwagi
Funkcja składowa zwraca wynik wywołania obiektu cache::allocate(count) pamięci podręcznej należącego do bieżącego wątku. Jeśli dla bieżącego wątku nie przydzielono żadnego obiektu pamięci podręcznej, najpierw go przydzieli.
sync_per_thread::d eallocate
Zwalnia określoną liczbę obiektów z magazynu rozpoczynającego się na określonej pozycji.
void deallocate(void* ptr, std::size_t count);
Parametry
ptr
Wskaźnik do pierwszego obiektu, który ma zostać cofnięty z magazynu.
liczba
Liczba obiektów do cofnięcia przydziału z magazynu.
Uwagi
Funkcja składowa wywołuje deallocate obiekt pamięci podręcznej należący do bieżącego wątku. Jeśli dla bieżącego wątku nie przydzielono żadnego obiektu pamięci podręcznej, najpierw go przydzieli.
sync_per_thread::equals
Porównuje dwie pamięci podręczne pod kątem równości.
bool equals(const sync<Cache>& Other) const;
Parametry
pamięci podręcznej
Obiekt pamięci podręcznej filtru synchronizacji.
Inne
Obiekt pamięci podręcznej do porównania pod kątem równości.
Wartość zwracana
falsejeśli dla tego obiektu nie przydzielono żadnego obiektu pamięci podręcznej lub dla innego w bieżącym wątku. W przeciwnym razie zwraca wynik zastosowania operator== do dwóch obiektów pamięci podręcznej.