05. Queue. Очереди

Queue. Очереди

Очереди в языке C++ можно создать различными способами, чаще всего используются deque и списки (list), но физически очередь можно создать на основе почти любого контейнера или написать самостоятельно, также может использоваться адаптер queue.
Конечно deque немного противоречит логике очередей (добавление элементов в начало очереди, но для обработки критических данных это бывает полезно).
Также стоит указать на возможность создания очередей с приоритетом на основе pair и priority_queue.

Т.е. очереди в языке C++ более «богатые» и «разнообразные» чем в классическом C и их реализация ограничена лишь задачами, ресурсами и фантазией разработчика.

Стоит сделать уточнение:
При работе с очередями нужно контролировать чтобы средняя длительность процесса обработки данных превышала среднюю скорость поступления.
Иначе при использовании очередей и динамической памяти можно получить переполнение!!!
Что это значит: очереди – крайне удобный механизм для обработки «редких, но больших» объемов данных.
Например:
условно раз в 10000 секунд получили 1000 каких-то значений, каждое из которых обрабатывается по 8 секунд например (итого 8000 секунд), подобную информацию наиболее удобно обрабатывать с помощью очередей.
Сформировали очередь из 1000 элементов и «потихоньку» их обрабатываем.

НО если обработка будет занимать не 8 секунд на элемент, а например 11, то к приходу новых данных очередь будет не пуста и данных на обработку будет больше и так далее до заполнения всей свободной памяти и аппаратного сбоя.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *