04-dispatch_group

葉喬木發表於2018-12-14

dispatch_group 實現執行緒同步

比如說,第一步我想先下載三張圖片,然後第二步再去主執行緒重新整理imgview 顯示圖片。
利用dispatch_group 來進行實現 ,簡單來講就四行程式碼. 就可以讓程式碼按照你想要的順序進行發生。

使用步驟

  • 建立一個dispatch_group_t

dispatch_group_t downloadGroup = dispatch_group_create();

  • 每次網路請求前先dispatch_group_enter

dispatch_group_enter(downloadGroup);

  • 請求回撥後再dispatch_group_leave

dispatch_group_leave(downloadGroup);

  • 當所有enter的block都leave後,會執行dispatch_group_notify的block

dispatch_group_notify(downloadGroup, dispatch_get_main_queue(), ^{});