NSOperation

  在多線程編程中,少不了異步編程,在目前開發中用到的比較多得時GCD,恰好今天學習了NSOperation,因此就記錄一下學習的筆記。git

  NSOperation表示了一個獨立的計算單元。它給了它的子類一個十分有用並且線程安全的方式來創建狀態、優先級、依賴性和取消等的模型。或者,你不是很喜歡再本身繼承NSOperation的話,框架還提供NSBlockOperation,這是一個繼承自NSOperation且封裝了block的實體類。github

  可是僅僅把這個計算封裝到一個對象不作處理也沒有什麼用,因此這就須要NSOperationQueue來管理。NSOperationQueue控制這些並行操做的執行,管理着優先級(NSOperation queuePriority)高的操做能比優先級低得操做先運行,而且能夠設置最大併發量maxConcurrentOperationCount。編程

  在NSOperation中能夠經過start開始執行,添加到NSOperationQueue中,通常狀況是根據先進先出的原則執行裏面的方法。安全

  

     NSOperation通常來講有三個狀態:isReady,isExcuting,isFinished.多線程

isReady  ---> isExecuting ---> isFinished 

 

總結的一張圖片:併發

 

參考:框架

http://nshipster.cn/nsoperation/dom

github開源項目:世界盃足球異步

相關文章
相關標籤/搜索