博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GCD之Apply
阅读量:5878 次
发布时间:2019-06-19

本文共 637 字,大约阅读时间需要 2 分钟。

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

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

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

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为全局线程(并行)时输出不是按索引输出,未主线程队列时,按索引输出。

转载地址:http://udjix.baihongyu.com/

你可能感兴趣的文章
PHP实现连接设备、通讯和发送命令的方法
查看>>
【HDOJ 5379】 Mahjong tree
查看>>
iOS UITableView表视图滚动隐藏UINavigationController导航栏
查看>>
SDL如何嵌入到QT中?!
查看>>
$(document).ready()
查看>>
RunLoop总结:RunLoop的应用场景(四)
查看>>
8个很实用的在线工具来提高你的Web设计和开发能力
查看>>
P1026 统计单词个数
查看>>
AndroidStudio EventBus报错解决方法its super classes have no public methods with the @Subscribe...
查看>>
MySQL主从同步那点事儿
查看>>
Python RGB 和HSV颜色相互转换
查看>>
mybatis分页练手
查看>>
.net数据库连接字符串加密
查看>>
[js高手之路] html5 canvas系列教程 - 状态详解(save与restore)
查看>>
文件监控
查看>>
poi excel 常用api
查看>>
AD提高动态的方法(附SNR计算)
查看>>
在linux程序里面,知道一个函数地址,改函数是属于某个动态库的,怎么样得到这个动态库的全【转】...
查看>>
sklearn 中的交叉验证
查看>>
C#语言中的属性语法还可以改进
查看>>