|
|
Lexikon auf Ihrer Homepage |
|
Lexikon als Lesezeichen hinzufügen |
| Grand Central Dispatch | |
|---|---|
| Maintainer | Apple Inc. |
| Entwickler | Apple Inc. |
| Aktuelle Version | 1.0 (11. September 2009) |
| Betriebssystem | Mac OS X, Unix |
| Lizenz | Apache-Lizenz 2.0 |
| Deutschsprachig | nein |
| libdispatch.macosforge.org | |
Grand Central Dispatch (GCD) ist eine Technologie und ein Entwickler-Framework, das von dem Unternehmen Apple entwickelt wird, um die Unterstützung von mehreren Prozessoren und Mehrkernprozessoren in Mac OS X v10.6 zu verbessern.[1] Grand Central stellt eine Programmierschnittstelle zur Verfügung, die die Verwendung mehrerer Rechenwerke (CPU-Prozessorkerne) abstrahiert. Der Quellcode für die Einbindung von Grand-Central-Dispatch-Diensten, libdispatch, wurde am 10. September 2009 von Apple offengelegt.[2]
Grand Central wird entwickelt, um den Softwareentwicklern auf Mac OS X die Nutzung von mehreren Prozessorkernen zu erleichtern. Die Grundkonzeption der Technologie ist es, einzelne, zu verarbeitende Aufgaben (Tasks) zu definieren, die dann von GCD verwaltet und an die verfügbaren Prozessoren verteilt werden. Die Vorteile dieser Technologie sind, dass sich die Entwickler für die Implementierung von einfachen parallelen Aufgaben nicht mit den Details von Multithreading auskennen müssen, sowie dass es unabhängig von der Anzahl der Prozessorkerne arbeitet und somit ein erheblicher Programmieraufwand für die Entwickler entfällt.[3]
Grand Central Dispatch beruht auf den gleichen Prinzipien wie auch Microsofts Task Parallel Library für die .Net-Plattform, Javas Concurrency API für Java und Intels Threading Building Blocks.
Am 26. September 2009 wurde die Verfügbarkeit von libdispatch unter FreeBSD 8.1 bekanntgegeben.[4] Auch MidnightBSD 0.3-CURRENT beinhaltet libdispatch.[5]
Die aktuellen Quellen des libdispatch Projektes kompilieren und funktionieren auch unter Linux und wurden der Debian Distribution als Pakete vorgeschlagen.[6][7]
Windows wird von zwei Forks unterstützt, die auf opensource.mlba-team.de und Github zu finden sind.[8][9] Eine Zusammenführung der verschiedenen Projekte und Integration in andere GUI Toolkits außer Cocoa, wie etwa Qt wird angestrebt.[10]