GCD栅栏函数
2018-06-22 本文已影响11人
aven_kang
// 栅栏函数在下面方法是不生效的.
// dispatch_queue_t queen = dispatch_get_global_queue(0, 0);
// 如果使用栅栏函数,不能使用全局队列,要使用创建队列的方式
dispatch_queue_t queen = dispatch_queue_create("download", DISPATCH_QUEUE_CONCURRENT);
dispatch_async(queen, ^{
NSLog(@"queen1-%@",[NSThread currentThread]);
});
dispatch_async(queen, ^{
NSLog(@"queen2-%@",[NSThread currentThread]);
});
dispatch_barrier_sync(queen, ^{
NSLog(@"+++++++++++++++++++");
});
dispatch_async(queen, ^{
NSLog(@"queen3-%@",[NSThread currentThread]);
});
图一
如图一的打印结果,queen3是在前两个执行完毕之后才执行的.