一、什么是NSOperation?
NSOperation是蘋果提供的一套多線程解決方案。實(shí)際上NSOperation是基于GCD更高一層的封裝,但是比GCD更加的面向?qū)ο?、代碼可讀性更高、可控性更強(qiáng),很屌的是加入了操作依賴。
默認(rèn)情況下,NSOperation單獨(dú)使用時(shí)只能同步執(zhí)行操作,并沒有開辟新線程的能力,只有配合NSOperationQueue才能實(shí)現(xiàn)異步執(zhí)行。講到這里,我們不難發(fā)現(xiàn)GCD和NSOperation實(shí)現(xiàn)的方式很像,其實(shí)這更像是廢話,NSOperation本身就是基于GCD的封裝,NSOperation相當(dāng)于GCD中的任務(wù),而NSOperationQueue則相當(dāng)于GCD中的隊(duì)列,前面《iOS多線程開發(fā)之GCD(上篇)》中已經(jīng)闡述過GCD的實(shí)質(zhì):開發(fā)者要做的只是定義想執(zhí)行的任務(wù)并追加到適當(dāng)?shù)腄ispatch Queue中。這樣我們也可說NSOperation的本質(zhì)就是:定義想執(zhí)行的任務(wù)(NSOperation)并追加到適當(dāng)?shù)腘SOperationQueue中。
二、NSOperation使用
1、創(chuàng)建任務(wù)
NSOperation是一個(gè)抽象的基類,表示一個(gè)獨(dú)立的計(jì)算單元,可以為子類提供有用且線程安全的建立狀態(tài),優(yōu)先級(jí),依賴和取消等操作。但它不能直接用來封裝任務(wù),只能通過它的子類來封裝,一般的我們可以使用:NSBlockOperation、NSInvocationOperation或者定義繼承自NSOperation的子類,通過實(shí)現(xiàn)內(nèi)部相應(yīng)的方法來封裝任務(wù)。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26