/* Page prose (ja) */
"Overview" = "# GCD の基礎\n\n![Grand Central Dispatch](Grandcentralicon.png)\n\n[なぜ並行処理か](Why%20Concurrency.playgroundchapter/Overview) の章では、問題を体感しました。メインスレッドで重い処理を行うとアプリがフリーズします。次に必要なのは、その処理をメインスレッドから*外へ*移すためのツールです。街角のコーヒーバーに戻りましょう。店長がバリスタを手作業で割り当てるのをやめ、代わりに**注文レール**を設置したと想像してください。伝票をレールに留めて立ち去ると、手が空いているバリスタが次の伝票を取ります。バリスタのことは一切考えず、伝票とそれがどのレールに乗るかだけを考えます。その注文レールが **Grand Central Dispatch** であり、この章ではその使い方を学びます。\n\n---\n\n## このページで学ぶこと\n\n* **Grand Central Dispatch (GCD)** とは何か、そしてなぜ自分でスレッドを作る代わりにクロージャを渡すのか。\n* 3種類の**ディスパッチキュー**（メイン、グローバル、カスタム）と、それぞれをいつ使うか。\n* **シリアル vs. 並行**キュー: それぞれが順序と重なりについて何を保証するか。\n* **`async`**（「スケジュールして先へ進む」）と **`sync`**（「終わるまでブロックする」）の決定的な違い。\n* 定番のパターン: バックグラウンドキューで処理を行い、その後**メインに戻って**UIに触れる。\n* **Quality of Service (QoS)**: 処理がどれだけ緊急かを GCD に伝える方法。\n\n---\n\n## GCD とは実際に何か\n\n**Grand Central Dispatch** は、バックグラウンドスレッドのプールを代わりに管理してくれるシステムライブラリです。自分でスレッドを作って扱う（これはエラーが起きやすく、やり過ぎになりがちです）代わりに、処理を**クロージャ**としてまとめ、それを**キュー**に渡します。GCD がどのスレッドで実行するかを決め、小さなスレッドプールをアプリ全体で効率よく再利用します。\n\nその逆転こそが肝心な点です。*「これはどのスレッドで実行すべきか？」*と問うのをやめ、*「これはどのキューに乗せるべきか、そして順序は重要か？」*と問い始めます。伝票とレールについて考え、GCD がバリスタを管理します。\n\n**ディスパッチキュー**は、実行を待つクロージャの列です。処理を末尾に追加すると、GCD が先頭から処理を取り出し、自身が管理するスレッドで実行します。この章のすべては、その一つの考え方のバリエーションです。\n\n次に、実際に使う3つのキューを見ていきましょう。\n\n1 / 9 ページ  |  [次へ: 実際に使う3つのキュー](@next)";
