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用于在同一个并发队列中,同步多个并发操作

  • 相关阅读:
    火焰图&perf命令
    C10K问题
    cocosStudio中使用PageView,ListView和ScrollView
    vim基本命令
    Git命令学习总结(-)
    可在 html5 游戏中使用的 js 工具库
    待飞日记(第十一篇)
    待飞日记(第十篇)
    待飞日记(第八天和第九天)
    高质量C++/C编程指南
  • 原文地址:https://www.cnblogs.com/xwoder/p/6017886.html
Copyright © 2011-2022 走看看