GCDとは何か? 言語を機能拡張した「Blocks」も用意 前述のように、GCDはSnow Leopardが用意する並列化のための枠組みだ。 GCDの中には、CPUやスレッドを管理するエンジンがあって、必要なときに必要なだけのスレッドを起こしてコアを実行してくれる軽量なAPIも「libdispatch」というライブラリにまとめられている。このエンジンがGCDの要になっていることは、アップルのウェブページにあるとおりだ(関連リンク)。 だが、それだけではない。 このエンジンに処理を渡し負荷を分散させ並列化を推し進めるため、アップルはプログラミング言語「C」そのものを改造するという決断をした。 この機能拡張は「Blocks」と呼ばれており、プログラムを意味ある塊(ブロック)に区切って、それを変数に代入したり、ほかの関数に渡すことを可能にする。Rubyなどのスクリプト言語(高級言語)で「クロージ