GCD:
將任務(wù)(block)添加到隊(duì)列(串行/并發(fā)/主隊(duì)列),并且指定任務(wù)執(zhí)行的函數(shù)(同步/異步)
GCD是底層的C語(yǔ)言構(gòu)成的API
iOS 4.0 推出的悬垃,針對(duì)多核處理器的并發(fā)技術(shù)
在隊(duì)列中執(zhí)行的是由 block 構(gòu)成的任務(wù),這是一個(gè)輕量級(jí)的數(shù)據(jù)結(jié)構(gòu)
要停止已經(jīng)加入 queue 的 block 需要寫(xiě)復(fù)雜的代碼
需要通過(guò) Barrier 或者同步任務(wù)設(shè)置任務(wù)之間的依賴關(guān)系
只能設(shè)置隊(duì)列的優(yōu)先級(jí)
高級(jí)功能:
一次性 once
延遲操作 after
調(diào)度組
NSOperation:
核心概念:把操作(異步)添加到隊(duì)列(全局的并發(fā)隊(duì)列)
OC 框架,更加面向?qū)ο螅菍?duì) GCD 的封裝
iOS 2.0 推出的宗挥,蘋(píng)果推出 GCD 之后,對(duì) NSOperation 的底層全部重寫(xiě)
Operation作為一個(gè)對(duì)象种蝶,為我們提供了更多的選擇
可以隨時(shí)取消已經(jīng)設(shè)定要準(zhǔn)備執(zhí)行的任務(wù)契耿,已經(jīng)執(zhí)行的除外
可以跨隊(duì)列設(shè)置操作的依賴關(guān)系
可以設(shè)置隊(duì)列中每一個(gè)操作的優(yōu)先級(jí)
高級(jí)功能:
最大操作并發(fā)數(shù)(GCD不好做)
繼續(xù)/暫停/全部取消
跨隊(duì)列設(shè)置操作的依賴關(guān)系
附:很好的demo鏈接 https://blog.csdn.net/sunnyboy9/article/details/19848031