Оновлення для швидкої 5
Серійна черга
let serialQueue = DispatchQueue.init(label: "serialQueue")
serialQueue.async {
// code to execute
}
Паралельна черга
let concurrentQueue = DispatchQueue.init(label: "concurrentQueue", qos: .background, attributes: .concurrent, autoreleaseFrequency: .inherit, target: nil)
concurrentQueue.async {
// code to execute
}
З документації Apple :
Параметри
етикетка
Мітка рядка, яку потрібно приєднати до черги, щоб однозначно ідентифікувати її в інструментах налагодження, таких як "Інструменти", "зразок", "стеки" та "звіти про збої". Оскільки програми, бібліотеки та фреймворки можуть створювати власні черги відправлення, рекомендується стиль імен зворотного DNS (com.example.myqueue). Цей параметр необов’язковий і може бути NULL.
qos
Рівень якості обслуговування для зв’язку з чергою. Це значення визначає пріоритет, з яким система планує завдання на виконання. Список можливих значень див. У DispatchQoS.QoSClass.
атрибути
Атрибути, що асоціюються з чергою. Включіть атрибут concurrent для створення черги відправлення, яка виконує завдання одночасно. Якщо цей атрибут пропущено, черга відправки виконує завдання послідовно.
autoreleaseFrequency
Частота автоматичної вивільнення об'єктів, створених блоками, які планує чергу. Список можливих значень див у розділі DispatchQueue.AutoreleaseFrequency .
цільовий
Цільова черга, за якою виконувати блоки. Вкажіть DISPATCH_TARGET_QUEUE_DEFAULT, якщо ви хочете, щоб система надавала чергу, відповідну поточному об'єкту.