Grand Central Dispatch

from Wikipedia, the free encyclopedia
Grand Central Dispatch
Basic data

Maintainer Apple Inc.
developer Apple Inc.
Current  version 1.0
(September 11, 2009)
operating system macOS , iOS , tvOS , watchOS , Unix
License Apache license 2.0
German speaking No
libdispatch.macosforge.org

Grand Central Dispatch ( GCD ) is a software technology and a programming interface that was developed by Dave Zarzycki at Apple to improve the support of several main processors or processor cores through abstraction . The source code for the integration of Grand Central Dispatch services, libdispatch , was disclosed by Apple on September 10, 2009.

Grand Central Dispatch was originally designed to make it easier for software developers on macOS (formerly “Mac OS X”), starting with Mac OS X Snow Leopard (10.6, 2009), to use multiple processor cores. This was only a logical step after nearly every multi-core processor Apple computer was sold at the time of its introduction . The basic concept of the technology is to separate, to process tasks ( tasks , which are then managed by GCD and distributed to the available processors to be defined). The advantages of this are that developers do not need to be familiar with the details of multithreading for the implementation of simple parallel tasks , and that Grand Central Dispatch works independently of the number of processor cores - this significantly reduces the programming effort for the developer.

Grand Central Dispatch is based on the same principles as Microsoft's Task Parallel Library for the .NET platform, Sun's Concurrency API for Java and Intel's Threading Building Blocks .

Porting to other operating systems

On September 26th, 2009 the availability of libdispatch on FreeBSD 8.1 was announced. Also MidnightBSD 0.3-CURRENT includes libdispatch.

The current source code of the libdispatch project compiles and also works under Linux. It has already been proposed as a package for the Debian distribution.

Windows is supported by two forks , which can be found on opensource.mlba-team.de and Github . The aim is to integrate libdispatch as an original component of Cocoa into other frameworks , such as Qt .

See also

Web links

Individual evidence

  1. Apple shows developers Mac OS X Snow Leopard , June 9th, 2008, English
  2. Libdispatch published September 10, 2009, in English
  3. WWDC 2008: What's new in Mac OS X Snow Leopard ( Memento of the original from October 17, 2008 in the Internet Archive ) Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. , June 18, 2008, English @1@ 2Template: Webachiv / IABot / www.roughlydrafted.com
  4. GCD libdispatch w / Blocks support working on FreeBSD , September 26, 2009, English
  5. libdispatch , August 14, 2010, English
  6. libdispatch mailing list: "Porting status" April 10, 2011, English
  7. Package: libdispatch0
  8. libdispatch mailing list: "libdispatch for Win32" April 22, 2011, English
  9. libdispatch mailing list: "Updates regarding the status of libdispatch on Windows" May 5, 2011, English
  10. Qt Integration , May 7, 2013, English