//dispatch_barrier_async使用在并行環(huán)境下孤里,
//dispatch_barrier_async添加的任務(wù)會(huì)在之前的block全部運(yùn)行完畢之后,才會(huì)繼續(xù)執(zhí)行,保證線程安全保證對(duì)非線程安全的對(duì)象進(jìn)行正確的操作。
//運(yùn)行完dispatch_barrier_async才會(huì)執(zhí)行后面的任務(wù)
//dispatch_barrier_async所在的線程跟前一個(gè)任務(wù)是同一線程
//延遲執(zhí)行
dispatch_after(dispatch_time(DISPATCH_TIME_NOW,(int64_t)(5*NSEC_PER_SEC)),dispatch_get_main_queue,dispatch_get_main_queue(),^{
NSLog(@"選擇性隊(duì)列延遲5秒執(zhí)行");
})
//自定義并行隊(duì)列
dispatch_queue_t queue=dispatch_queue_create("duoduo",DISPATCH_QUEUE_CONCURRENT);
dispatch_async(queue,^{
NSLog(@"dispatch_async-1-%@",[NSThread currentThread]);
});
dispatch_async(queue,^{
NSLog(@"dispatch_async-2-%@",[NSTread currentThread]);
});
dispatch_barrier_async(queue,^{
NSLog(@"dispatch_barrier_async-%@",[NSTread currentThread]);
});
dispatch_async(queue,^{
NSLog(@"dispatch_async-3-%@",[NSThread currentThread]);
});
dispatch_async(queue,^{
NSLog(@"dispatch_async-4-%@",[NSThread currentThread]);
});