Modernizing Grand Central Dispatch Usage - WWDC 2017 - Videos - Apple Developer
macOS 10.13 and iOS 11 have reinvented how Grand Central Dispatch and the Darwin kernel collaborate, enabling your applications to run...
Concurrent Programming With GCD in Swift 3 - WWDC 2016 - Videos - Apple Developer
Swift 3 provides new interfaces that make it easier than ever to write applications with Grand Central Dispatch. Learn the basics of GCD...
Mastering Grand Central Dispatch - WWDC 2011 - Videos - Apple Developer
Grand Central Dispatch is a powerful technology on Mac OS X and iOS that simplifies multi-threaded development. Learn about the latest...
System Trace in Depth - WWDC 2016 - Videos - Apple Developer
Join engineers from the Instruments team for another focused look at the System Trace Instruments profiling template and how to get the...
Concurrency in Swift: Reader Writer Lock
When it comes to protecting critical sections both Objective-C and Swift provide little to none language support. Luckily, we have tools to choose in frameworks. In this article I will demonstrate how to solve the readers-writers using GCD and pthread (POSIX threads) in Swift.
Leaky abstractions in Swift with DispatchQueue
At Q42 we have some apps with very occasional weird multi-threading issues. After a bunch of debugging Mathijs Kadijk and I figured out it had something to do with DispatchSpecificKey. This post details what we found out. Pop quiz! What do you think this prints?
Introducing Swift Atomics
I'm delighted to announce Swift Atomics, a new open source package that enables direct use of low-level atomic operations in Swift code. The goal of this library is to enable intrepid systems programmers to start building synchronization constructs (such as concurrent data structures) directly in Swift.
Making efficient use of the libdispatch (GCD)
The libdispatch is one of the most misused API due to the way it was presented to us when it was introduced and for many years after that, and due to the confusing documentation and API. This page is a compilation of important things to know if you're going to use this library.