GCD 與 NSOperation 的對比

KarMacartne 8年前發布 | 14K 次閱讀 Objective-C開發

來自: http://my.oschina.net/TaciturnKnightYQ/blog/614507


  • GCD

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

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

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

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

    • 要停止已經加入 queue 的 block 需要寫復雜的代碼

    • 需要通過 Barrier 或者同步任務設置任務之間的依賴關系

    • 只能設置隊列的優先級

    • 高級功能:

      • 一次性 once

      • 延遲操作 after

      • 調度組

       

      </ul>

    • NSOperation

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

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

      • iOS 2.0 推出的,蘋果推出 GCD 之后,對 NSOperation 的底層全部重寫

      • Operation作為一個對象,為我們提供了更多的選擇

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

      • 可以跨隊列設置操作的依賴關系

      • 可以設置隊列中每一個操作的優先級

      • 高級功能:

        • 最大操作并發數(GCD不好做)

        • 繼續/暫停/全部取消

        • 跨隊列設置操作的依賴關系

        </ul> </ul>

         

 本文由用戶 KarMacartne 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!