Una DispatchQueue es el objeto al que se le envía trabajo en GCD. No se le envían hilos, se le envían closures (bloques de código), y es la cola la que decide cómo y cuándo ejecutarlas.

FIFO: orden de inicio, no de finalización

Una DispatchQueue es una cola FIFO (first in, first out): las tareas empiezan a ejecutarse en el orden en que se despacharon. Esto no implica que terminen en ese mismo orden — eso depende de si la cola es serial o concurrente (lo cual se cubre en los próximos dos artículos). Lo único garantizado por el FIFO es el orden de inicio.

Prioridad: Quality of Service (QoS)

Cada tarea que se despacha tiene una prioridad asociada, expresada como DispatchQoS. El sistema usa esa prioridad para decidir qué tarea atender primero cuando varias compiten por CPU: