GCD和NSOperation 用于实现多线程:GCD会自动将队列中的任务取出,放到对应的线程中执行,任务的取出遵循队列的FIFO原则,先进先出;NSOperation和NSOperationQueue实现多线程先将需要执行的操作封装到一个NSOperation对象中,然后将对象封装到NSOperationQueue中,系统会自动从队列中取出操作,并将操作放到新的线程中执行。
GCD用于一些简单的需求,简单的多线程操作,NSOperation用于各个操作之间有依赖关系,操作需要取消、暂停,或者需要限制同时执行的线程数量,以及让线程在某个时刻停止、继续的情况。