在多線程編程中,少不了異步編程,在目前開發中用到的比較多得時GCD,剛好今天學習了NSOperation,所以就記錄一下學習的筆記。
NSOperation表示了一個獨立的計算單元。它給了它的子類一個十分有用而且線程安全的方式來建立狀態、優先級、依賴性和取消等的模型。或者,你不是很喜歡再自己繼承NSOperation的話,框架還提供NSBlockOperation,這是一個繼承自NSOperation且封裝了block的實體類。
但是僅僅把這個計算封裝到一個對象不做處理也沒有什么用,所以這就需要NSOperationQueue來管理。NSOperationQueue控制這些并行操作的執行,管理著優先級(NSOperation queuePRiority)高的操作能比優先級低得操作先運行,并且可以設置最大并發量maxConcurrentOperationCount。
在NSOperation中可以通過start開始執行,添加到NSOperationQueue中,一般情況是根據先進先出的原則執行里面的方法。
NSOperation一般來說有三個狀態:isReady,isExcuting,isFinished.
isReady ---> isExecuting ---> isFinished
總結的一張圖片:

參考:
http://nshipster.cn/nsoperation/
github開源項目:世界杯足球
新聞熱點
疑難解答