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的任務也包含在內
相關文章
- JavaScript陣列 幾個常用方法JavaScript陣列
- 常用的幾個陣列操作方法陣列
- 常用的幾個陣列方法與數學方法陣列
- 獲取字串長度的幾個常用方法字串
- Form開發中元件控制的幾個常用方法ORM元件
- GCD 容易讓人迷惑的幾個小問題GC
- 防毒常用的幾條基本方法防毒
- ios GCD 死鎖幾個案例 詳細講解iOSGC
- git的幾個常用基本操作Git
- 幾個常用函式的使用函式
- 常用的幾個典型指令碼指令碼
- iframe跨域的幾種常用方法跨域
- 製作 kettle 外掛時,在 processRow 方法裡的幾個常用方法說明:
- 常用的Linux,記住了幾個?Linux
- Nginx的幾個常用配置和技巧Nginx
- 《安全測試常用的幾個工具》
- javascript除錯的幾個常用技巧JavaScript除錯
- 幾個常用監控工具的使用
- Git的幾個常用命令Git
- IOS幾個常用類庫的用法iOS
- 常用的幾個eclipse快捷鍵Eclipse
- 幾個常用的Ajax庫小節
- 計算幾何常用的函式/方法函式
- css中常用的幾種居中方法CSS
- [php]幾個常用函式PHP函式
- css幾個居中的方法CSS
- 深入 TypeScript – 2( 幾個常用的小技巧)TypeScript
- 幾個常用的網路診斷命令
- Linux埠轉發的幾種常用方法Linux
- 幾種常用的SQL優化工具及方法SQL優化
- pandas 的幾個查詢方法
- 提升家庭WiFi的幾個方法WiFi
- 分享幾個實用的方法
- JS常用判斷空對像的幾種方法JS
- iOS 開發中 runtime 常用的幾種方法iOS
- 簡單常用的幾項程式碼優化方法優化
- linux常用的幾個系統介紹Linux
- 老司機常用的幾個JavaScript除錯技巧JavaScript除錯