Aggiornamento per swift 5
Coda seriale
let serialQueue = DispatchQueue.init(label: "serialQueue")
serialQueue.async {
// code to execute
}
Coda simultanea
let concurrentQueue = DispatchQueue.init(label: "concurrentQueue", qos: .background, attributes: .concurrent, autoreleaseFrequency: .inherit, target: nil)
concurrentQueue.async {
// code to execute
}
Dalla documentazione Apple :
parametri
etichetta
Un'etichetta di stringa da allegare alla coda per identificarla in modo univoco in strumenti di debug come strumenti, campioni, stackshots e rapporti sugli arresti anomali. Poiché le applicazioni, le librerie e i framework possono tutti creare le proprie code di invio, si consiglia uno stile di denominazione DNS inverso (com.example.myqueue). Questo parametro è facoltativo e può essere NULL.
QoS
Il livello di qualità del servizio da associare alla coda. Questo valore determina la priorità con cui il sistema pianifica le attività per l'esecuzione. Per un elenco di possibili valori, vedere DispatchQoS.QoSClass.
attributi
Gli attributi da associare alla coda. Includere l'attributo simultaneo per creare una coda di invio che esegue attività contemporaneamente. Se si omette tale attributo, la coda di invio esegue le attività in serie.
autoreleaseFrequency
La frequenza con cui rilasciare automaticamente gli oggetti creati dai blocchi pianificati dalla coda. Per un elenco di possibili valori, vedere DispatchQueue.AutoreleaseFrequency .
bersaglio
La coda di destinazione su cui eseguire i blocchi. Specificare DISPATCH_TARGET_QUEUE_DEFAULT se si desidera che il sistema fornisca una coda appropriata per l'oggetto corrente.