一、什么是NSOperation?

      NSOperation是蘋(píng)果提供的一套多線程解決方案。實(shí)際上NSOperation是基于GCD更高一層的封裝,但是比GCD更加的面向?qū)ο?、代碼可讀性更高、可控性更強(qiáng),很屌的是加入了操作依賴。

      默認(rèn)情況下,NSOperation單獨(dú)使用時(shí)只能同步執(zhí)行操作,并沒(méi)有開(kāi)辟新線程的能力,只有配合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多線程開(kāi)發(fā)之GCD(上篇)》中已經(jīng)闡述過(guò)GCD的實(shí)質(zhì):開(kāi)發(fā)者要做的只是定義想執(zhí)行的任務(wù)并追加到適當(dāng)?shù)腄ispatch Queue中。這樣我們也可說(shuō)NSOperation的本質(zhì)就是:定義想執(zhí)行的任務(wù)(NSOperation)并追加到適當(dāng)?shù)腘SOperationQueue中。

 

二、NSOperation使用

     1、創(chuàng)建任務(wù)

     NSOperation是一個(gè)抽象的基類,表示一個(gè)獨(dú)立的計(jì)算單元,可以為子類提供有用且線程安全的建立狀態(tài),優(yōu)先級(jí),依賴和取消等操作。但它不能直接用來(lái)封裝任務(wù),只能通過(guò)它的子類來(lái)封裝,一般的我們可以使用:NSBlockOperation、NSInvocationOperation或者定義繼承自NSOperation的子類,通過(guò)實(shí)現(xiàn)內(nèi)部相應(yīng)的方法來(lái)封裝任務(wù)。

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式