GCD 中的group 使用
在最近的業(yè)務(wù)場(chǎng)景中,考慮到性能的優(yōu)化,以及建減少服務(wù)器的壓力,使用到從并行到串行業(yè)務(wù)的流程。
假設(shè) 場(chǎng)景服務(wù)中 要對(duì)對(duì)象A 的屬性 成員B 的圖片進(jìn)行上傳后,再處理圖片路徑 然后再提交A的相關(guān)數(shù)據(jù)。我處理的場(chǎng)景方案就是group
使用方式 :
dispatch_group_t group = dispatch_group_create();
dispatch_queue_t mainQueue = dispatch_get_main_queue();
dispatch_group_enter(group);
dispatch_async(mainQueue, ^{
dispatch_group_leave(group);
});
// 組中的隊(duì)列全部執(zhí)行完畢后就通知調(diào)度組
dispatch_group_notify(g, dispatch_get_main_queue(), ^{
NSLog(@"MainTask: %@", [NSThread currentThread]);
});
//等待組中的任務(wù)都執(zhí)行完畢,才會(huì)執(zhí)行
dispatch_group_notify(group, dispatch_get_main_queue(), ^{
//此處執(zhí)行 完成組內(nèi)任務(wù)后的內(nèi)容
});
//等待組中的任務(wù)都執(zhí)行完畢,才會(huì)繼續(xù)執(zhí)行后續(xù)的代碼
dispatch_group_wait(group, DISPATCH_TIME_FOREVER);
以上是我刪除掉了業(yè)務(wù)代碼所寫的組內(nèi)執(zhí)行任務(wù)結(jié)束后 回歸串行的方法。
有需求可參考使用