Here’s an overview of Apple’s new concurrent programming framework, complete with programming examples.

This is taken from the Ars Technica review of Snow Leopard. It’s that page of the review and the next page.

Long story short - they added blocks to C and Objective-C. A single line of code can wrap any section of code into a potentially concurrent section. You can assign the blocks to user-defined queues or system-provided queues. The system will ramp the number of simultaneous blocks up and down based on number of physical CPUs/cores/current load. A GUI app can spin off a section of code without complex programming and have it update the main GUI thread on completion, again without complicated programming.

It makes it trivial to turn a non-threaded code base into a heavily threaded one. Or to turn a serial task into a parallel task. All of this could be done in C, C++, Java and .Net without GCD. The key difference is the ease of it and the fact that the load is tuned by the system.