iOS多線程編程技術

iOS有三種多線程技術

1.NSThread

優點:輕量級

缺點:需要自己管理線程的聲明週期, 線程同步.線程同步對數據的加鎖有一定的系統開銷



2.NSOperation

優點: 不需要關心線程管理, 數據同步的事情, 可以把經理放在自己需要執行的操作上.相關的類是NSOperation, NSOperationQueue

NSOperation是個抽象類, 使用它必須用它的子類, 可以實現它定義好的兩個類:NSInvocationOperation 和 NSBlockOperation

創建NSOperation子類的對象, 把對象添加到NSOperationQueue隊列裏執行



3,GCD

  1. The main queue(主線程串行隊列): 與主線程功能相同,提交至Main queue的任務會在主線程中執行,
    • Main queue 可以通過dispatch_get_main_queue()來獲取。
  2. Global queue(全局併發隊列): 全局併發隊列由整個進程共享,有高、中(默認)、低、後臺四個優先級別。
    • Global queue 可以通過調用dispatch_get_global_queue函數來獲取(可以設置優先級)
  3. Custom queue (自定義隊列): 可以爲串行,也可以爲併發。
    • Custom queue 可以通過dispatch_queue_create()來獲取;
  4. Group queue (隊列組):將多線程進行分組,最大的好處是可獲知所有線程的完成情況。
    • Group queue 可以通過調用dispatch_group_create()來獲取,通過dispatch_group_notify,可以直接監聽組裏所有線程完成情況。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章