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 |