天天看點

[iOS]GCD和NSOperationQueue的比較

GCD NSOperationQueue
GCD是C的函數封裝 NSOperation是Objective-C類,可以子類化。底層由GCD實作。
支援取消整個Queue的任務,支援block任務取消dispatch_block_cancel 支援取消單個NSOperation或整個Queue的任務
支援暫停和恢複dispatch_suspend 和 dispatch_resume 支援隊列暫停和恢複queue.suspended
通過group來實作 支援任務之間的依賴關系
隊列具有優先級 任務具有優先級
GCD 是嚴格的隊列,先進先出 FIFO NSOperation可以改動 優先級(或者說服務品質)改變執行順序
GCD信号量dispatch_semaphore 可以設定最大并發數
可以采用KVO監聽任務狀态
GCD性能更佳,使用簡單 NSOperationQueue更靈活,架構封裝往往采用NSOperationQueue