[GCD] ディスパッチキュー:FIFO、優先度、キューの種... ノート

[GCD] ディスパッチキュー:FIFO、優先度、キューの種類

DispatchQueue は GCD で作業が送信されるオブジェクトであり、スレッドの代わりにクロージャを受け取ります。このキューは、これらのコードブロックを実行するタイミングと方法を管理します。これは先入れ先出し (FIFO) の原則に基づいて動作し、タスクはディスパッチされた順序で開始されることを保証しますが、必ずしも完了した順序ではありません。システムは、Quality of Service (QoS) として知られる優先度を各ディスパッチされたタスクに割り当てます。これらの優先度は、即時の UI 更新のための .userInteractive から、認識されないタスクのための .background まであります。優先度の高いタスクはより多くのシステムリソースを受け取り、優先度の誤用はパフォーマンスを低下させる可能性があります。GCD は、DispatchQueue を取得するための 3 つの方法を提供します。UI スレッドに結び付けられたシリアルメインキュー、各 QoS レベルのシステム提供の同時グローバルキュー、および開発者によって作成されたカスタムキューです。カスタムキューはデフォルトでシリアルですが、同時実行可能にすることができます。メインキューは、すべての UI 関連の操作に不可欠です。グローバルキューはシステムによって共有および管理され、各 QoS に専用のキューがあります。カスタムキューにより、開発者は独自のシリアルまたは同時実行タスク実行環境を定義できます。カスタムキューのラベルは、デバッグ目的のみです。今後の記事では、シリアルキューと同時実行キューでの同期ディスパッチと非同期ディスパッチについて説明します。