You can use GCD for thread substitutions. It needs blocks.
Example of use:
You can use dispatch_sync instead dispatch_async for locked code execution.
Another sample of code is this way to perform a delayed selector on an object:
Finally other fine use of GCD is for creating safe singleton objects:
With dispatch_once the code only will be executed one and only one time.
Available in iOS 4.0 and later.
Available in Mac OS X v10.6 and later.