Concurrency ,
For operations added to a queue, execution order is determined first by the
readiness of the queued operations and then by their relative priority.
Readiness is determined by an operation’s dependencies on other operations,
but the priority level is an attribute of the operation object itself.
By default, all new operation objects have a "normal" priority, but you
can increase or decrease that priority as needed by calling the object’s
setQueuePriority: method.