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


Класс 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**>**.

Члены

Ee355358.collapse_all(ru-ru,VS.110).gifОткрытые определения типов

Имя

Описание

allocator_type

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

const_iterator

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

const_reference

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

difference_type

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

iterator

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

reference

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

size_type

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

value_type

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

Ee355358.collapse_all(ru-ru,VS.110).gifОткрытые конструкторы

Имя

Описание

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

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

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

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

Ee355358.collapse_all(ru-ru,VS.110).gifОткрытые методы

Имя

Описание

Метод 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