zoukankan      html  css  js  c++  java
  • GCD之Apply

    dispatch_apply函数是dispatch_sync函数和dispatch_group的结合体。该函数将按指定的次数将指定的block追加到指定的dispatch queue中,并等待全部处理结束。

    指定的次数将指定的block追加到指定的dispatch queue中,即循环,和dispatch_group类似,此处循环要根据dispatch queue来判读是并行循环还是串行循环。等待全部处理结束,即同步,和dispatch_sync 一样。

    下面看代码及运行结果来验证:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    dispatch_queue_t queue=  dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
        dispatch_apply(5, queue, ^(size_t i) {
            NSLog(@"%ld",i);
        });
        NSLog(@"%d",88);
        //不死锁
        dispatch_async(queue, ^{
            dispatch_apply(5, dispatch_get_main_queue(), ^(size_t i) {
                NSLog(@"%ld",i);
            });
        });

    运行结果:

    此时可以看到:当dispatch queue为全局线程(并行)时输出不是按索引输出,未主线程队列时,按索引输出。

  • 相关阅读:
    生成函数
    泰勒公式与牛顿迭代
    如何在浏览器关闭发送请求
    elment-ui table组件 -- 远程筛选排序
    微信小程序 -- 数据请求
    2019年 学习计划
    vue 表单校验(二)
    ubuntu 学习
    vue-cli如何添加多种环境变量
    vue兼容ie
  • 原文地址:https://www.cnblogs.com/yulei126/p/6783245.html
Copyright © 2011-2022 走看看