- NSOperationQueue 是在GCD基礎上實現的,只不過是GCD更高一層的抽象。
- GCD 只支持FIFO 的隊列, 而NSOperationQueue能夠調整隊列的執行順序。(經過調整權重)
- NSOperationQueue能夠在Operation間設置依賴關係,而GCD不能夠。 若是一個Operation依賴另外一個Operation所產生的數據的化,你能夠設置一個Operation依賴於另外一個Operation來實現, NSOperationQueue能夠根據依賴關係,能夠以正確的順序執行Queue中的Operation。
- NSOperationQueue支持KVO。 這就意味着你能夠觀察任務的狀態屬性。
以上幾點並非說在任何處理多任務時必定要選擇NSOperationQueue, 由於NSOperationQueue在執行速度上會比GCD慢。 隊列