【開発・提供】Apple(アップルジャパン)
【対応プラットフォーム】Mac OS X
【公式サイト】
Created Date: 09/10/17
Modified Date:
【解説】Modified Date:
米Appleより開発、提供等が行われているMac OS XベースのAPI(Application Programming Interface)。「GCD」と略記されるケースも多く、構成要素の一部でもある「libdispatch」のソースコードは「Apache License 2.0」の下にオープンソースとして公開されている(プロジェクトはAppleによるオープンソースポータル「Mac OS Forge」にホストされている)。
「Mac OS X 10.6 Snow Leopard(2009年8月28日リリース)」より新たに実装されたマルチスレッド実行環境(ディスパッチャサービス)としてオペレーティングシステム全体をマルチコアプロセッサに対応させる事により、マルチコアシステムが潜在的に有するパフォーマンスの効率的な活用(Macintoshコンピュータ(或いは「Xserve」)における密結合並列処理の強化)等に貢献する(マルチコアシステムにてマルチスレッドを効率的に処理するための仕組みがデベロッパ等に対して提供される事となる)。
「GCD」が実装されている環境では、スレッドは個別のアプリケーションではなくオペレーティングシステムによって処理される事となり、対応するプログラムは利用可能な全てのプロセッサコアに対してタスクを自動的に分散するため、何れのホストコンピュータにおいても効率的にパフォーマンスを発揮する事が可能となる。また、ホストコンピュータに実装されているプロセッサ(コア)数を考慮してアプリケーションの作業負荷をリアルタイムで調整し、実行中のタスクに必要なスレッドのみを使用する事によってアプリケーションの実行効率を高めている(「GCD」が実装されていない環境では、アプリケーションが最大時に要するスレッドと同数のスレッドがセットアップされるため、アイドル時においても各種リソースが消費される可能性がある。一方で「GCD」が実装されている環境では、アプリケーションが使用していない状況下において各種リソースが解放される等、システム全体における負荷の軽減等が齎される事となる)。
尚、「GCD」が潜在的に有するポテンシャルをフルに活用するためには、Cコンパイラにおける「Blocks」サポートが必須となる(「Blocks」ランタイムはLLVM(Low Level Virtual Machine)プロジェクトの一部として提供されている)。