一、什么是NSOperation?

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

      默認情況下,NSOperation單獨使用時只能同步執(zhí)行操作,并沒有開辟新線程的能力,只有配合NSOperationQueue才能實現(xiàn)異步執(zhí)行。講到這里,我們不難發(fā)現(xiàn)GCD和NSOperation實現(xiàn)的方式很像,其實這更像是廢話,NSOperation本身就是基于GCD的封裝,NSOperation相當(dāng)于GCD中的任務(wù),而NSOperationQueue則相當(dāng)于GCD中的隊列,前面《iOS多線程開發(fā)之GCD(上篇)》中已經(jīng)闡述過GCD的實質(zhì):開發(fā)者要做的只是定義想執(zhí)行的任務(wù)并追加到適當(dāng)?shù)腄ispatch Queue中。這樣我們也可說NSOperation的本質(zhì)就是:定義想執(zhí)行的任務(wù)(NSOperation)并追加到適當(dāng)?shù)腘SOperationQueue中。

 

二、NSOperation使用

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

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

延伸閱讀

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