Поделиться через


Класс sync_per_thread

Описывает фильтр синхронизации, предоставляющий отдельный объект кэширования для каждого потока.

Синтаксис

template <class Cache>
class sync_per_thread

Параметры

Cache
Тип кэша, связанный с фильтром синхронизации. Он может иметь значение cache_chunklist, cache_freelist или cache_suballoc.

Замечания

Распределители, использующие sync_per_thread, могут быть равны несмотря на то, что блоки, выделенные в одном потоке, невозможно освободить из другого потока. При использовании одного из этих распределителей блоки памяти, выделенные в одном потоке, не должны быть видимы другим потокам. На практике это означает, что доступ к контейнеру, использующему один из этих распределителей, должен осуществляться только одним потоком.

Функции элементов

Функция-член Description
allocate Выделяет блок памяти.
deallocate Освобождает указанное число объектов из памяти, начиная с заданной позиции.
equals Сравнивает два кэша на равенство.

Требования

Заголовок:<распределители>

Пространство имен: stdext

sync_per_thread::allocate

Выделяет блок памяти.

void *allocate(std::size_t count);

Параметры

count
Число выделяемых элементов в массиве.

Замечания

Функция-член возвращает результат вызова cache::allocate(count) в объекте кэша, который относится к текущему потоку. Если объект кэша для текущего потока не выделен, сначала такой объект будет выделен.

sync_per_thread::d eallocate

Освобождает указанное число объектов из памяти, начиная с заданной позиции.

void deallocate(void* ptr, std::size_t count);

Параметры

ptr
Указатель на первый объект, который необходимо освободить из хранилища.

count
Количество объектов для освобождения из хранилища.

Замечания

Функция-член вызывает метод deallocate в объекте кэша, который относится к текущему потоку. Если объект кэша для текущего потока не выделен, сначала такой объект будет выделен.

sync_per_thread::equals

Сравнивает два кэша на равенство.

bool equals(const sync<Cache>& Other) const;

Параметры

Cache
Объект кэша фильтра синхронизации.

Другое
Объект кэша для сравнения на равенство.

Возвращаемое значение

false Значение , если для этого объекта не выделен объект кэша или для другого в текущем потоке. В противном случае возвращается результат применения operator== к двум объектам кэша.

Замечания

См. также

<Распределители>