最終更新:2017-02-23 (木) 14:31:34 (2619d)  

Grand Central Dispatch
Top / Grand Central Dispatch

Mac OS XSnow Leopard)に搭載されるマルチスレッドプログラミング用フレームワーク

  • libdispatch?

https://developer.apple.com/reference/dispatch?language=objc

http://images.apple.com/macosx/technology/docs/GrandCentral_TB_brief_20090903.pdf

概要

  • タスクを非同期に実行する技術のひとつとして、Grand CentralDispatch?(GCD)というものがありま す。通常はアプリケーション中に記述するスレッド管理用のコードを、システムレベルで実装したも のです。開発者がしなければならないのは、実行したいタスクを定義し、適切なディスパッチキュー に追加することだけです。するとGCDは、必要なスレッドを生成し、そこでタスクを実行するよう適 切にスケジューリングします。スレッド管理がシステムの一部として組み込まれているので、全体を 見渡してタスクを管理、実行でき、従来のスレッドよりも効率が向上します。

メモ

  • マルチコア化が進むに従ってマルチスレッドプログラミングの重要性は増しているが、C/C++を使ったマルチスレッドプログラミングは標準では低水準のAPIしかなく、スレッドプールを用いたオーバーヘッド?の小さな処理の実装はプログラマに任されいる。GCDでは、こうした処理を抽象化して最適化している。プログラマは、実行タスク?としてブロック?関数キューに追加していくだけでよく、GCDが1つずつ取り出して処理を行う。キューはあらかじめシステムに数種類用意されているほか、ユーザー定義も可能という。
  • 通常のスレッドプログラミングでは、スレッドを生成して、何かの処理を行うまでに数百インストラクションの実行が必要だが、アップルの説明によれば、GCDではキューへのタスク追加が15インストラクションで済むという。

iPhone

メモ

関数

参考

関連