Приоритетни опашки
При реални задачи понякога има нужда от формиране на опашки, редът на избор на елементи от които се определя от приоритетите на елементите. Приоритетът в общия случай може да бъде представен чрез числова стойност, която се изчислява или въз основа на стойностите на полетата на всеки елемент, или въз основа на външни фактори. И така, както FIFO, така и LIFO могат да се третират като приоритетни опашки, в които приоритетът на даден елемент зависи от времето, през което е бил включен в опашката. Когато е избран елемент, всеки път се избира елементът с най-висок приоритет.
Приоритетните опашки могат да бъдат. реализирани върху линейни списъчни структури – в съседно или свързано представяне. Възможни са опашки с приоритетно включване - при които последователността от елементи на опашката се поддържа подредена през цялото време, т.е. всеки нов елемент се включва на мястото в последователността, което се определя от неговия приоритет, а при изключване винаги се избира елементът от началото. Възможни са и опашки с изключване на приоритет - нов елемент винаги се включва в края на опашката, а когато се направи изключение, опашката се търси (това търсене може да бъде само линейно) за елемента с най-висок приоритет и след като селекцията се премахва от последователността. И в двата случая е необходимо търсене, а ако опашката се намира в статична памет, изисква и движение на елементи.
Най-удобната форма за организиране на големи приоритетни опашки е да сортирате елементи в низходящ ред на приоритет в частично подредено дърво, кат. Нека разгледаме по-нататък.
Опашки в изчислителните системи
Опашката е една от ключовите концепции в многозадачните операционни системи (Windows NT, Unix, OS/2, EU и др.). Ресурсите на компютърната система (процесор, RAM, външни устройства и т.н.) се използват от всички задачиизпълнявани едновременно в средата на такава ОС. защото много видове ресурси не позволяват реално едновременно използване от различни задачи, такива ресурси се предоставят на задачи на свой ред. По този начин задачите, които претендират, че използват определен ресурс, се поставят на опашка към този ресурс. Тези опашки обикновено са приоритетни опашки, но FIFO опашките също се използват доста често, тъй като това е единствената логична опашка. queuing, което гарантирано няма да изпреварва постоянно задачи с по-висок приоритет. Стековете обикновено се използват от операционната система, за да следят свободните ресурси.
Също така в съвременните операционни системи едно от средствата за взаимодействие между паралелни задачи са опашките от съобщения, наричани още пощенски кутии. Всяка задача има своя собствена опашка - пощенска кутия и всички съобщения, изпратени до нея от други задачи, попадат в тази опашка. Собственикът на задачата на опашката избира съобщения от нея и може да контролира реда на вземане на проби - FIFO, LIFO или по приоритет.