- (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]);
    });
}


使用自己创建的 异步函数 打印结果:

 
使用全局并发队列 打印结果:

 

posted on 2018-06-26 16:03  懂事长qingzZ  阅读(409)  评论(0编辑  收藏  举报