Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Описывает фильтр синхронизации, предоставляющий отдельный объект кэширования для каждого потока.
Синтаксис
template <class Cache>
class sync_per_thread
Параметры
Кэш
Тип кэша, связанный с фильтром синхронизации. Он может иметь значение cache_chunklist, cache_freelist или cache_suballoc.
Замечания
Распределители, использующие sync_per_thread, могут быть равны несмотря на то, что блоки, выделенные в одном потоке, невозможно освободить из другого потока. При использовании одного из этих распределителей блоки памяти, выделенные в одном потоке, не должны быть видимы другим потокам. На практике это означает, что доступ к контейнеру, использующему один из этих распределителей, должен осуществляться только одним потоком.
Функции элементов
| Функция-член | Описание |
|---|---|
| размещать | Выделяет блок памяти. |
| Освобождения | Освобождает указанное число объектов из памяти, начиная с заданной позиции. |
| равно | Сравнивает два кэша на равенство. |
Требования
Заголовок:<распределители>
Пространство имен: stdext
sync_per_thread::allocate
Выделяет блок памяти.
void *allocate(std::size_t count);
Параметры
число
Число выделяемых элементов в массиве.
Замечания
Функция-член возвращает результат вызова cache::allocate(count) в объекте кэша, который относится к текущему потоку. Если объект кэша для текущего потока не выделен, сначала такой объект будет выделен.
sync_per_thread::d eallocate
Освобождает указанное число объектов из памяти, начиная с заданной позиции.
void deallocate(void* ptr, std::size_t count);
Параметры
ptr
Указатель на первый объект, который необходимо освободить из хранилища.
число
Количество объектов для освобождения из хранилища.
Замечания
Функция-член вызывает метод deallocate в объекте кэша, который относится к текущему потоку. Если объект кэша для текущего потока не выделен, сначала такой объект будет выделен.
sync_per_thread::equals
Сравнивает два кэша на равенство.
bool equals(const sync<Cache>& Other) const;
Параметры
Кэш
Объект кэша фильтра синхронизации.
Другое
Объект кэша для сравнения на равенство.
Возвращаемое значение
false Значение , если для этого объекта не выделен объект кэша или для другого в текущем потоке. В противном случае возвращается результат применения operator== к двум объектам кэша.