Класс concurrent_queue

Класс concurrent_queue является классом-контейнером последовательности, позволяющим доступ "первый вошел — первый вышел" к его элементам. Он позволяет ограниченный набор параллельно-безопасных операций, таких как push и try_pop/

template<
   typename _Ty,
   class _Ax
>
class concurrent_queue: public ::Concurrency::details::_Concurrent_queue_base_v4;

Параметры

  • _Ty
    Тип данных элементов, хранимых в очереди.

  • _Ax
    Тип, представляющий хранимый объект распределителя, инкапсулирующий сведения о распределении и освобождении памяти для данной параллельной очереди. Этот аргумент является необязательным и значение по умолчанию — allocator<_Ty**>**.

Члены

Общедоступные Typedefs

Имя

Описание

allocator_type

Тип, представляющий класс распределителя для параллельной очереди.

const_iterator

Тип, который представляет не потокобезопасный итератор const над элементами в параллельной очереди.

const_reference

Тип, предоставляющий ссылку на элемент const, хранящийся в параллельной очереди для чтения и выполнения операций const.

difference_type

Тип, предоставляющий расстояние со знаком между двумя элементами в параллельной очереди.

iterator

Тип, который представляет не потокобезопасный итератор над элементами в параллельной очереди.

reference

Тип, который предоставляет ссылку на элемент, хранящийся в параллельной очереди.

size_type

Тип, который подсчитывает число элементов в параллельной очереди.

value_type

Тип, который представляет тип данных, хранящийся в параллельной очереди.

Открытые конструкторы

Имя

Описание

Конструктор concurrent_queue::concurrent_queue

Перегружен. Создает параллельную очередь.

Деструктор concurrent_queue::~concurrent_queue

Уничтожает параллельную очереди.

Открытые методы

Имя

Описание

Метод concurrent_queue::clear

Очищает параллельную очередь, уничтожая все в данный момент поставленные в очередь элементы. Данный метод не безопасен в режиме параллелизма.

Метод concurrent_queue::empty

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

Метод concurrent_queue::get_allocator

Возвращает копию распределителя, используемого для создания параллельной очереди. Данный метод безопасен в режиме параллелизма.

Метод concurrent_queue::push

Перегружен. Ставит элемент в конец параллельной очереди. Данный метод безопасен в режиме параллелизма.

Метод concurrent_queue::try_pop

Удаляет элемент из очереди, если он доступен. Данный метод безопасен в режиме параллелизма.

Метод concurrent_queue::unsafe_begin

Перегружен. Возвращает итератор типа iterator или const_iterator к началу параллельной очереди. Данный метод не безопасен в режиме параллелизма.

Метод concurrent_queue::unsafe_end

Перегружен. Возвращает итератор типа iterator или const_iterator к концу параллельной очереди. Данный метод не безопасен в режиме параллелизма.

Метод concurrent_queue::unsafe_size

Возвращает число элементов в очереди. Данный метод не безопасен в режиме параллелизма.

Заметки

Для получения дополнительной информации см. Параллельные контейнеры и объекты.

Иерархия наследования

concurrent_queue

Требования

Заголовок: concurrent_queue.h

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

См. также

Ссылки

Пространство имен concurrency