GCD 與 NSOperation 的對比

  • GCDweb

    • 任務(block)添加到隊列(串行/併發/主隊列),而且指定任務執行的函數(同步/異步)數據結構

    • GCD是底層的C語言構成的API併發

    • iOS 4.0 推出的,針對多核處理器的併發技術框架

    • 在隊列中執行的是由 block 構成的任務,這是一個輕量級的數據結構異步

    • 要中止已經加入 queue 的 block 須要寫複雜的代碼函數

    • 須要經過 Barrier 或者同步任務設置任務之間的依賴關係code

    • 只能設置隊列的優先級對象

    • 高級功能:隊列

      • 一次性 once同步

      • 延遲操做 after

      • 調度組


  • NSOperation

    • 核心概念:把操做(異步)添加到隊列(全局的併發隊列)

    • OC 框架,更加面向對象,是對 GCD 的封裝

    • iOS 2.0 推出的,蘋果推出 GCD 以後,對 NSOperation 的底層所有重寫

    • Operation做爲一個對象,爲咱們提供了更多的選擇

    • 能夠隨時取消已經設定要準備執行的任務,已經執行的除外

    • 能夠跨隊列設置操做的依賴關係

    • 能夠設置隊列中每個操做的優先級

    • 高級功能:

      • 最大操做併發數(GCD很差作)

      • 繼續/暫停/所有取消

      • 跨隊列設置操做的依賴關係

相關文章
相關標籤/搜索