- 1>
GCD
是纯C
语言的API
。NSOperationQueue
是基于GCD
的OC
的封装。 - 2>
GCD
只支持FIFO
队列,NSOperationQueue
可以方便设置执行顺序,设置最大的并发数量。 - 3>
NSOperationQueue
可是方便的设置operation
之间的依赖关系,GCD
则需要很多代码。 - 4>
NSOperationQueue
支持KVO
,可以检测operation
是否正在执行(isExecuted)
,是否结束(isFinished)
,是否取消(isCanceled)
- 5>GCD的执行速度比NSOperationQueue快。
-
任务之间不太相互依赖:
GCD
-
任务之间有依赖或要监听任务的执行情况:
NSOperationQueue