- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ //同步函数无需栅栏函数 //栅栏函数不能使用全局并发队列:不起作用 //栅栏函数不能使用全局并发队列:不起作用 //栅栏函数不能使用全局并发队列:不起作用 //栅栏函数不能使用全局并发队列:不起作用 //栅栏函数不能使用全局并发队列:不起作用 //栅栏函数不能使用全局并发队列:不起作用 dispatch_queue_t queue111 = dispatch_queue_create("栅栏", DISPATCH_QUEUE_CONCURRENT); dispatch_queue_t queue = dispatch_get_global_queue(0, 0); dispatch_async(queue111, ^{ NSLog(@"111---%@", [NSThread currentThread]); }); dispatch_async(queue111, ^{ NSLog(@"222---%@", [NSThread currentThread]); }); //栅栏函数钱的111 和222谁先执行 无法控制,因为他们是异步执行的,栅栏函数后的333,444 也无法控制,他们也是异步执行的 dispatch_barrier_async(queue111, ^{ NSLog(@"++++++"); }); dispatch_async(queue111, ^{ NSLog(@"333---%@", [NSThread currentThread]); }); dispatch_async(queue111, ^{ NSLog(@"444---%@", [NSThread currentThread]); }); }
使用自己创建的 异步函数 打印结果:
使用全局并发队列 打印结果: