zoukankan      html  css  js  c++  java
  • dispatch_barrier_async函数的作用

    代码:

    dispatch_queue_t queue = dispatch_queue_create("queue", DISPATCH_QUEUE_CONCURRENT);
    
    dispatch_async(queue, ^{
        NSLog(@"Before Barrier Block - 1");
    });
    dispatch_async(queue, ^{
        NSLog(@"Before Barrier Block - 2");
    });
    dispatch_async(queue, ^{
        NSLog(@"Before Barrier Block - 3");
    });
    dispatch_async(queue, ^{
        NSLog(@"Before Barrier Block - 4");
    });
    dispatch_async(queue, ^{
        NSLog(@"Before Barrier Block - 5");
    });
    
    dispatch_barrier_async(queue, ^{
        NSLog(@"Barrier Block");
    });
    
    dispatch_async(queue, ^{
        NSLog(@"After Barrier Block - 1");
    });
    dispatch_async(queue, ^{
        NSLog(@"After Barrier Block - 2");
    });
    dispatch_async(queue, ^{
        NSLog(@"After Barrier Block - 3");
    });
    dispatch_async(queue, ^{
        NSLog(@"After Barrier Block - 4");
    });
    dispatch_async(queue, ^{
        NSLog(@"After Barrier Block - 5");
    }); 

    可能的输出:

    Before Barrier Block - 1
    Before Barrier Block - 2
    Before Barrier Block - 3
    Before Barrier Block - 5
    Before Barrier Block - 4
    Barrier Block
    After Barrier Block - 1
    After Barrier Block - 3
    After Barrier Block - 2
    After Barrier Block - 5
    After Barrier Block - 4

    备注:

    dispatch_barrier_async用于在同一个并发队列中,同步多个并发操作

  • 相关阅读:
    面向对象---2
    面向对象---1
    数组的复制、反转、查找(线性查找,二分法查找)
    Oracle 开放端口供客户机连接
    ORACLE常用函数大全
    ORACLE常用脚本
    C#开发实用知识点总结
    线程对话框基类
    C#开发常见问题处理
    通过修改注册表实现IE设置
  • 原文地址:https://www.cnblogs.com/xwoder/p/6017886.html
Copyright © 2011-2022 走看看