GCD-dispatch_apply
来源:互联网 发布:电脑能看淘宝直播吗 编辑:程序博客网 时间:2024/05/05 04:08
函数原型:void dispatch_apply(size_t iterations, dispatch_queue_t queue, void (^block)(size_t));
此函数是异步遍历函数,异步遍历 block 。但是函数本身是同步函数,会阻塞当前线程的执行,直至遍历结束,当前线程继续执行。
如果参数传入一个并行队列,遍历是并行的,遍历的 index 顺序是不确定的,并且每个遍历所在的线程也是不确定的。
如果参数传入一个串行队列,我没有找到可靠的说法,单遍历应该是是串行的,并且遍历都在一个线程。但是平时估计不会这么用。
示例:
- (IBAction)GCD_dispatch_apply_buttonAction:(UIButton *)sender { //创建一个并行队列 dispatch_queue_t queue = dispatch_queue_create("queueIdentifier2", DISPATCH_QUEUE_CONCURRENT); dispatch_async(dispatch_get_global_queue(0, 0), ^(){ //此处遍历顺序是不确定的,也就是说index不一定会按顺序输出,同时遍历的线程也是不确定的。 //此函数是同步函数,会阻塞当前线程运行。需要手动根据需要来决定是否在非主线程执行。 dispatch_apply(5, queue, ^(size_t index) { NSLog(@"threat:%@---index:%zu",[NSThread currentThread],index); }); //当循环完成后才执行后续任务 NSLog(@"循环完成"); });}
输出: 循环完成
一定是最后输出的,因为 dispatch_apply
是同步函数,它会阻塞当前线程的运行。
threat:{number = 3, name = (null)}—index:0
threat:{number = 3, name = (null)}—index:1
threat:{number = 3, name = (null)}—index:2
threat:{number = 3, name = (null)}—index:3
threat:{number = 3, name = (null)}—index:4
循环完成
0 0
- GCD-dispatch_apply
- GCD学习(七) dispatch_apply
- GCD学习(七) dispatch_apply
- GCD之dispatch_apply
- GCD(四) ---- dispatch_apply、dispatch_barrier
- GCD学习笔记(九):dispatch_apply
- GCD中的dispatch_apply的用法及作用
- GCD 第二篇 dispatch_after;dispatch_apply;dispatch_once
- iOS GCD系列(一) dispatch_after;dispatch_apply;dispatch_once
- GCD学习之——dispatch_apply
- dispatch_apply
- dispatch_apply
- 完整详解GCD系列(二)dispatch_after;dispatch_apply;dispatch_once
- GCD之dispatch_after、dispatch_apply、dispatch_once等使用介绍
- 完整详解GCD系列(二)dispatch_after;dispatch_apply;dispatch_once
- 完整详解GCD系列(二)dispatch_after;dispatch_apply;dispatch_
- 完整详解GCD系列(一)dispatch_after;dispatch_apply;dispatch_
- 完整详解swift GCD系列(二)dispatch_after;dispatch_apply;dispatch_once
- 将c++代码编成动态库在android中使用
- OC内存管理
- org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe
- PHP表单向导设置
- js提升行为
- GCD-dispatch_apply
- 基于TensorFlow的歌曲曲风变换
- 配置Tomcat的HTTPS
- 编程基础知识
- 观察者模式
- Memcache技术笔记
- 各种HTTPS站点的SSL证书 ,扩展SSL证书,密钥交换和身份验证机制汇总
- Android 透明度百分比对应的 十六进制
- 获取视图view所在的控制器