dispatch_barrier_async這個(gè)方法。barrier 這個(gè)單詞的意思是障礙镇眷,攔截的意思,也即是說(shuō)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 作用是在并行隊(duì)列中音同,等待前面兩個(gè)操作并行操作完成,這里是并行輸出
dispatch-1秃嗜,dispatch-2
然后執(zhí)行
dispatch_barrier_async中的操作权均,(現(xiàn)在就只會(huì)執(zhí)行這一個(gè)操作)執(zhí)行完成后顿膨,即輸出
"dispatch-barrier,
最后該并行隊(duì)列恢復(fù)原有執(zhí)行狀態(tài)叽赊,繼續(xù)并行執(zhí)行
dispatch-3,dispatch-4