Here's what I talk about in the presentation:
- Why did Apple create Grand Central Dispatch?
- The effect of multi-core CPUs on software developers.
- Why did the Desktop industry transition to multi-core CPUs?
- Will the mobile industry follow suite?
- The effect of over-flowing the pipeline. (threads vs available cores)
- The OS imposed difficulty in properly filling the pipeline.
- Real-world benchmarks of GCD vs traditional thread pools.
- How is GCD different from traditional multi-threading solutions?
- What GCD does NOT help you with.
- Threads vs GCD queues.
- What is a block exactly?
- How does memory-management work with blocks? (primitives & objects)
- Using the basic GCD APIs.
- Using GCD to help create thread-safe classes.
- Other advanced GCD topics
The video is not of the highest quality (crappy camera), but I hope the content will make up for it.
Watch The Video: Part 1 Part 2
Download the slides: Keynote | PDF
I've been doing a lot of work with GCD, and it's been great! It's not too difficult to learn, and the performance improvements have been impressive. We introduced a GCD based AsyncSocket library a few months ago, and found it to be up to 400% faster than the traditional thread/runloop version. And we also migrated CocoaHTTPServer to GCD and posted some impressive benchmarks.