Grand Central Dispatch

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
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 Softwaretechnologie und eine Programmierschnittstelle, die von dem Unternehmen Apple entwickelt wurde, um die Unterstützung von mehreren Hauptprozessoren bzw. Prozessorkernen durch Abstraktion zu verbessern.[1] Der Quelltext für die Einbindung von Grand-Central-Dispatch-Diensten, libdispatch, wurde am 10. September 2009 von Apple offengelegt.[2]

Grand Central Dispatch wurde ursprünglich entworfen, um Softwareentwicklern unter Mac OS X (beginnend mit Mac OS X 10.6) die Nutzung von mehreren Prozessorkernen zu erleichtern. Dies war nur ein logischer Schritt, nachdem zum Zeitpunkt der Einführung nahezu jeder Apple-Computer mit Mehrkernprozessor vertrieben wurde. Die Grundkonzeption der Technologie ist es, einzelne, zu verarbeitende Aufgaben (Tasks) zu definieren, die dann von GCD verwaltet und auf die verfügbaren Prozessoren verteilt werden. Daraus ergeben sich als Vorteile, dass sich Entwickler für die Implementierung von einfachen parallelen Aufgaben nicht mit den Details von Multithreading auskennen müssen, sowie dass Grand Central Dispatch unabhängig von der Anzahl der Prozessorkerne arbeitet – damit wird der Programmieraufwand für die Entwickler erheblich reduziert.[3]

Grand Central Dispatch beruht auf den gleichen Prinzipien wie auch Microsofts Task Parallel Library für die .NET-Plattform, Suns Concurrency API für Java und Intels Threading Building Blocks.

Portierung auf andere Betriebssysteme[Bearbeiten]

Am 26. September 2009 wurde die Verfügbarkeit von libdispatch unter FreeBSD 8.1 bekanntgegeben.[4] Auch MidnightBSD 0.3-CURRENT beinhaltet libdispatch.[5]

Der aktuelle Quelltext des libdispatch-Projektes kompiliert und funktioniert auch unter Linux. Er wurde der Debian-Distribution bereits als Paket vorgeschlagen.[6][7]

Windows wird von zwei Forks unterstützt, die auf opensource.mlba-team.de und Github zu finden sind.[8][9] Es wird angestrebt, libdispatch als ursprünglichen Bestandteil von Cocoa auch in andere Frameworks, wie etwa Qt, einzubinden.[10]

Siehe auch[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. Apple zeigt Entwicklern Mac OS X Snow Leopard, 9. Juni, 2008,englisch
  2. Libdispatch veröffentlicht 10. September 2009, englischsprachig
  3. WWDC 2008: Neues in Mac OS X Snow Leopard, 18. Juni 2008, englisch
  4. GCD libdispatch w/Blocks support working on FreeBSD, 26. September 2009, englisch
  5. libdispatch, 14. August 2010, englisch
  6. libdispatch mailing list: "Porting status" 10. April 2011, englisch
  7. Paket: libdispatch0
  8. libdispatch mailing list: "libdispatch for Win32" 22. April 2011, englisch
  9. libdispatch mailing list: "Updates regarding the status of libdispatch on Windows" 5. Mai 2011, englisch
  10. Qt Integration, 7. Mai 2013, englisch