Swift 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のドキュメントから:
パラメーター
ラベル
Instruments、サンプル、スタックショット、およびクラッシュレポートなどのデバッグツールでキューを一意に識別するためにキューに添付する文字列ラベル。アプリケーション、ライブラリ、およびフレームワークはすべて独自のディスパッチキューを作成できるため、逆DNS命名スタイル(com.example.myqueue)をお勧めします。このパラメーターはオプションであり、NULLにすることができます。
QoS
キューに関連付けるサービス品質レベル。この値は、システムがタスクの実行をスケジュールする優先順位を決定します。可能な値のリストについては、DispatchQoS.QoSClassを参照してください。
属性
キューに関連付ける属性。タスクを同時に実行するディスパッチキューを作成するには、concurrent属性を含めます。この属性を省略すると、ディスパッチキューはタスクを順次実行します。
autoreleaseFrequency
キューがスケジュールするブロックによって作成されたオブジェクトを自動解放する頻度。可能な値のリストについては、DispatchQueue.AutoreleaseFrequencyを参照してください。
目標
ブロックを実行するターゲットキュー。現在のオブジェクトに適したキューをシステムに提供させる場合は、DISPATCH_TARGET_QUEUE_DEFAULTを指定します。