I searched a variety of sources but don\'t really understand the difference between using NSThreads
and GCD. I\'m completely new to the OS X platform so I might
GCD (Grand Central Dispatch): GCD provides and manages FIFO queues to which your application can submit tasks in the form of block objects. Work submitted to dispatch queues are executed on a pool of threads fully managed by the system. No guarantee is made as to the thread on which a task executes. Why GCD over threads :
How much work your CPU cores are doing How many CPU cores you have. How much threads should be spawned. If GCD needs it can go down into the kernel and communicate about resources, thus better scheduling. Less load on kernel and better sync with OS GCD uses existing threads from thread pool instead of creating and then destroying. Best advantage of the system’s hardware resources, while allowing the operating system to balance the load of all the programs currently running along with considerations like heating and battery life.
I have shared my experience with threads, operating system and GCD AT http://iosdose.com