GCD學習(五) dispatch_barrier_async
先看段代碼
dispatch_queue_t concurrentQueue = dispatch_queue_create("my.concurrent.queue", DISPATCH_QUEUE_CONCURRENT);
dispatch_async(concurrentQueue,^(){
NSLog(@"dispatch-1");
});
dispatch_async(concurrentQueue,^(){
NSLog(@"dispatch-2");
});
dispatch_barrier_async(concurrentQueue,^(){
NSLog(@"dispatch-barrier");
});
dispatch_async(concurrentQueue,^(){
NSLog(@"dispatch-3");
});
dispatch_async(concurrentQueue,^(){
NSLog(@"dispatch-4");
});
dispatch_barrier_async 作用是在并行隊列中臭杰,等待前面兩個操作并行操作完成动雹,這里是并行輸出
dispatch-1佃延,dispatch-2
然后執(zhí)行
dispatch_barrier_async中的操作渴邦,(現(xiàn)在就只會執(zhí)行這一個操作)執(zhí)行完成后冠跷,即輸出
"dispatch-barrier弧满,
最后該并行隊列恢復原有執(zhí)行狀態(tài)瞻润,繼續(xù)并行執(zhí)行
dispatch-3,dispatch-4