Threads and the resources allocated for/inside them are very difficult to manage. With mobile devices starting to have more than 1 core (CPU), we can see the complications in managing threads by the programmer. In fact, multiple cores make it very difficult (or even impossible) for programmers to manage their application's resources effectively. Grand Central Dispatch (GCD) is a C API at the core of OS X and iOS which allows programmers to dispatch "tasks" or "block objects" to the CPU. GCD will then manage the underlying threads.