GCD常用的幾個方法
一.dispatch_barrier_async 柵欄塊
在一個自定義的並行佇列中執行多個任務block時,如果接下來要處理的是barrier block, barrier block並不會立即執行,而是要一直等待barrier block 前面的所有其他併發block執行完畢才會執行barrier block,任何提交到barrier block之後的在此佇列中執行的block只有等到barrier block執行完畢,才會接著向下執行
注意:這個佇列要是使用者通過dispatch_queue_create建立的自定義佇列,而且還要是並行佇列,
對於序列佇列和全域性佇列不起作用,會按照普通的block執行
1.在全域性佇列中非同步執行,會按照dispatch_async方式執行


2.自定義並行佇列中執行

二.dispatch_group_async 分派組
將並行佇列中非同步的多個任務合併為一組,等到這組任務完成後,通過利用dispatch_group_notify回撥得到這組任務完成的通知
例如:當非同步下載多張圖片的時候,需要等到所有圖片下載完成之後,去通知使用者下載完成,就可以這麼來幹

可以利用 dispatch_group_enter(dispathch_group_t group) dispatch_group_leave(dispathch_group_t group),來加入到指定的group中,這兩個方法必須是成對出現的,否則會出現記憶體洩露

有兩個方法可以用來得到回到的通知
dispatch_group_wait(group, DISPATCH_TIME_FOREVER)
這個方法會阻塞線層,只有當前group上所有的任務完成才會繼續往下執行
dispatch_group_notify
這個方法不會阻塞線層,這行程式碼之下所加到這個group的任務也包含在內
相關文章
- Cesium 比較常用的幾個方法
- 常用的幾個陣列方法與數學方法陣列
- JavaScript陣列 幾個常用方法JavaScript陣列
- 建樹的幾種常用方法
- iframe跨域的幾種常用方法跨域
- git的幾個常用基本操作Git
- 常用的Linux,記住了幾個?Linux
- python 的幾個常用的函式Python函式
- Python教程: 反射及常用的幾種方法Python反射
- Linux埠轉發的幾種常用方法Linux
- Python中常用的幾個內建方法(max()/min()、filter()、map()、sorted、reduce())PythonFilter
- Nginx的幾個常用配置和技巧Nginx
- 《安全測試常用的幾個工具》
- css幾個居中的方法CSS
- iOS 開發中 runtime 常用的幾種方法iOS
- 深入 TypeScript – 2( 幾個常用的小技巧)TypeScript
- 幾個常用的linux效能監控命令Linux
- linux常用的幾個系統介紹Linux
- 幾個常用的網路診斷命令
- 整理幾個方法
- 分享幾個實用的方法
- 提升家庭WiFi的幾個方法WiFi
- pandas 的幾個查詢方法
- JS常用判斷空對像的幾種方法JS
- 分享 Python 3.6 中常用的幾個新特性Python
- 常用的幾種專案衝突管理的解決方法
- 關於python單例的常用幾種實現方法Python單例
- linux中後臺執行程式常用的幾種方法Linux行程
- 外貿找客戶郵箱常用的幾種方法
- 陣列去重的幾個方法陣列
- 這幾個python常用的庫你必須知道!Python
- 常用的過載運算子你瞭解幾個?
- 老司機常用的幾個JavaScript除錯技巧JavaScript除錯
- GCD Inside: GCD 宏GCIDE
- [譯] 降維技術中常用的幾種降維方法
- 檢視SQL執行計劃的幾種常用方法YQSQL
- 奇怪的GCDGC
- iOS-GCD常用函式和柵欄函式iOSGC函式
- 異常-Throwable的幾個常見方法