Atualização para o swift 5
Fila serial
let serialQueue = DispatchQueue.init(label: "serialQueue")
serialQueue.async {
// code to execute
}
Fila simultânea
let concurrentQueue = DispatchQueue.init(label: "concurrentQueue", qos: .background, attributes: .concurrent, autoreleaseFrequency: .inherit, target: nil)
concurrentQueue.async {
// code to execute
}
Da documentação da Apple :
Parâmetros
rótulo
Um rótulo de cadeia para anexar à fila para identificá-lo exclusivamente em ferramentas de depuração, como Instrumentos, amostra, stackshots e relatórios de falha. Como aplicativos, bibliotecas e estruturas podem criar suas próprias filas de despacho, um estilo de nomeação de DNS reverso (com.example.myqueue) é recomendado. Este parâmetro é opcional e pode ser NULL.
qos
O nível de qualidade de serviço a ser associado à fila. Este valor determina a prioridade na qual o sistema agenda tarefas para execução. Para obter uma lista dos valores possíveis, consulte DispatchQoS.QoSClass.
atributos
Os atributos a serem associados à fila. Inclua o atributo simultâneo para criar uma fila de expedição que execute tarefas simultaneamente. Se você omitir esse atributo, a fila de expedição executará tarefas em série.
autoreleaseFrequency
A frequência com a qual liberar automaticamente objetos criados pelos blocos agendados pela fila. Para obter uma lista de valores possíveis, consulte DispatchQueue.AutoreleaseFrequency .
alvo
A fila de destino na qual executar blocos. Especifique DISPATCH_TARGET_QUEUE_DEFAULT se desejar que o sistema forneça uma fila apropriada para o objeto atual.