Aktualizacja do szybkiego 5
Kolejka szeregowa
let serialQueue = DispatchQueue.init(label: "serialQueue")
serialQueue.async {
// code to execute
}
Współbieżna kolejka
let concurrentQueue = DispatchQueue.init(label: "concurrentQueue", qos: .background, attributes: .concurrent, autoreleaseFrequency: .inherit, target: nil)
concurrentQueue.async {
// code to execute
}
Z dokumentacji Apple :
Parametry
etykieta
Etykieta ciągów, którą należy dołączyć do kolejki, aby jednoznacznie zidentyfikować ją w narzędziach do debugowania, takich jak Instrumenty, próbki, stackshoty i raporty o awariach. Ponieważ wszystkie aplikacje, biblioteki i frameworki mogą tworzyć własne kolejki wysyłki, zaleca się styl nazewnictwa DNS odwrotny (com.example.myqueue). Ten parametr jest opcjonalny i może mieć wartość NULL.
qos
Poziom jakości usług do powiązania z kolejką. Ta wartość określa priorytet, z jakim system planuje zadania do wykonania. Aby uzyskać listę możliwych wartości, zobacz DispatchQoS.QoSClass.
atrybuty
Atrybuty do skojarzenia z kolejką. Dołącz atrybut współbieżny, aby utworzyć kolejkę wysyłkową, która wykonuje zadania jednocześnie. W przypadku pominięcia tego atrybutu kolejka wysyłkowa wykonuje zadania szeregowo.
autoreleaseFrequency
Częstotliwość automatycznego wydawania obiektów utworzonych przez bloki planowane przez kolejkę. Aby uzyskać listę możliwych wartości, zobacz DispatchQueue.AutoreleaseFrequency .
cel
Kolejka docelowa, w której mają być wykonywane bloki. Podaj DISPATCH_TARGET_QUEUE_DEFAULT, jeśli chcesz, aby system udostępniał kolejkę odpowiednią dla bieżącego obiektu.