GCD和NSPoeration的區(qū)別


  • GCD
    • 任務(wù)(block)添加到隊(duì)列(串行/并發(fā)/主隊(duì)列),并且制定任務(wù)執(zhí)行的函數(shù)(同步/異步)
    • GCD是底層的C語(yǔ)言構(gòu)成的API
    • iOS4.0推出的,針對(duì)多核處理器的并發(fā)技術(shù)
    • 在對(duì)象中執(zhí)行的是由block構(gòu)成的任務(wù),這是一個(gè)輕量級(jí)的數(shù)據(jù)結(jié)構(gòu)
    • 要停止已經(jīng)加入queueblock需要些賦值的代碼
    • 需要通過(guò)Barrier或者同步任務(wù)這是任務(wù)之間的依賴關(guān)系
    • 只能設(shè)置隊(duì)列的優(yōu)先級(jí)
    • 高級(jí)功能:
      • 一次性once
      • 延遲操作 after
      • 調(diào)度組

  • NSOperation
    • 核心概念:把異步操作添加到全局的并發(fā)隊(duì)列
    • OC框架,更加面向?qū)ο?是對(duì)GCD的封裝
    • iOS2.0推出的,蘋(píng)果推出GCD之后,對(duì)NSOperation的底層全部重寫(xiě)
    • Operation作為一個(gè)對(duì)象,為我們提供了更多的選擇
    • 可以隨時(shí)取消已經(jīng)設(shè)定要這邊執(zhí)行的任務(wù),已經(jīng)執(zhí)行的除外
    • 可以跨隊(duì)列設(shè)置操作的依賴關(guān)系
    • 可以設(shè)置隊(duì)列中每一個(gè)操作的優(yōu)先級(jí)
    • 高級(jí)功能:
      • 最大并發(fā)數(shù)
      • 繼續(xù)/暫停/全部取消
      • 跨隊(duì)列設(shè)置操作的依賴關(guān)系
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容