A first-in first-out data structure used to sequence objects. Objects are added to the tail of the queue ("enqueued") and taken off the head ("dequeued").

For example, an operating system might use a queue to serialise concurrent demands for a resource such as a printer, processor or communications channel. Users might place files on a print queue and a background process or "demon" would take them off and print them. Another common use is to pass data between an interrupt handler and a user process.