update.3年ぐらい前の被埃記事なのにだいぶご覧いただいていて...なんかもういたたまれなくなって記法など内容更新しました。}だけだったなあっていう雑感。(2018.12.25)知識整理を兼ねてざっとまとめます。並列プログラミング基礎で。用意したディスパッチキューにタスクを放り込んで何やかんや。スレッド管理しなくても非同期処理を実現できる。同期」といった組合せに対する専用APIも用意されており、複雑なタスク処理プロセスでも簡潔に記述できる。使いこなせれば記述の短いきれいなコードに。Queue(直訳:送信待ち行列?)処理待ちタスクを追加するためのキュー。追加された順にタスクを処理側へ渡す役割を担う。タスクの処理は担当しない。ディスパッチキューが処理側へタスクを引き渡す方式は2種類。直列処理(=SERIAL)...前タスク処理が終わるのを待って次タスクを処理側へ渡す方式。常に1つずつ順番通り処理されるので、マルチコアCPUの良さを発揮できないが、着実に処理される。順番が重要なタスクはこちらを選択すべき。(デフォルト)並列処理(=CONCURRENT)...前タスク処理が終わっていなくともCPUに余力があれば次タスクを処理側へ渡す方式。処理が分散されるので、個々のタスク完了の順番が入れ替わることがあるが、マルチコアCPUの性能を発揮して全体的に速く処理される。順番を気にしないタスクはこちらを選択すべき。ディスパッチキュー優先度は、用途に合わせて5種類。他のディスパッチキューと比べた時の処理優先度となる。ディスパッチキューを自作する場合は微調整も可能。Service;サービス品質)と呼ばれる。DispatchQoS.QoSClass.~で指定する。USER_INTERACTIVE用...ユーザーからの入力をもとに即座に反映させる必要がある動作用。USER_INITIATE用...ユーザーからの入力をもとに反映させる一般動作用。DEFAULT用...直接設定するのは非推奨っぽい。UTILITY用...プログレスバー動作など反映に緊急度が求められていない動作。バックグラウンド動作用。状況に応じたディスパッチキューを用意。メインディスパッチキューグローバルディスパッチキュープライベートディスパッチキューメインディスパッチキューOS側で作成済みなので呼び出すだけ。