场景:分别异步执行2个耗时任务,然后当2个耗时任务都执行完毕后再回到主线程执行任务。这时候我们可以用到 GCD 的队列组 调用队列组的 dispatch_group_async 先把任务放到队列中,然后将队列放入队列组中。或者使用队列组的 dispatch_group_enter、dispatch_ ...
分类:
移动开发 时间:
2019-11-13 16:24:01
阅读次数:
83
回到主线程 延时执行 开启一个异步线程 开启一个同步线程 线程优先级 分组执行 串行队列:只有一个线程,加入到队列中的操作按添加顺序依次执行。 并发队列:有多个线程,操作进来之后它会将这些队列安排在可用的处理器上,同时保证先进来的任务优先处理。 信号量 oc中dispatch_group_enter ...
分类:
编程语言 时间:
2019-10-18 19:21:49
阅读次数:
134
1.dispatch_group_async、dispatch_group_t与dispatch_group_notify 再配合dispatch_group_enter(group)和dispatch_group_leave(group)两个函数一起来使用,这样才能实现我们想要的最终效果。 2.d ...
分类:
其他好文 时间:
2019-09-02 16:58:42
阅读次数:
102
上面的代码的后台输出是: 可以发现,因为block内被加了休眠sleep,所以block外的NSLOG操作被先执行了。而在block1被执行完毕后,block2和线程结束的部分的内容才被执行 ...
分类:
编程语言 时间:
2018-11-07 11:31:49
阅读次数:
198
1. dispatch_group_enter(group); dispatch_group_leave(group); dispatch_group_notify(group1, queue1,block); 在这种组合下,根据任务是同步、异步又分为两种,这两种组合的执行代码与运行结果如下: 第一 ...
分类:
其他好文 时间:
2018-10-26 14:28:20
阅读次数:
154
1.线程监听 有时候经常有这样的需求,AB任务都执行完成之后,刷新界面或者执行其他操作, 2.线程等待 暂停当前线程(阻塞当前线程),等待指定的 group 中的任务执行完成后,才会往下继续执行 从dispatch_group_wait相关代码运行输出结果可以看出: 当所有任务执行完成之后,才执行 ...
分类:
编程语言 时间:
2018-09-30 11:27:33
阅读次数:
174
dispatch_group_async方法是异步请求,网络请求也一般是异步请求。notify如果是异步情况下默认请求发送完成就是任务完成,会造成收不到回调通知,影响操作。 所以采用dispatch_group_enter和dispatch_group_leave方法来配合,先用enter通知接下来 ...
分类:
其他好文 时间:
2018-09-28 23:00:02
阅读次数:
742
dispatch_sync:同步操作,会阻塞当前线程 dispatch_async:普通的异步操作,也就是在指定的队列中添加一个block操作,不会阻塞当前线程 dispatch_group_async:与dispatch_async相比需要多一个group参数(dispatch_group_t类型 ...
//多个异步请求完成后汇总结结果(任务执行不区分先后顺序) dispatch_queue_t queue = dispatch_get_global_queue(0,0); dispatch_group_t group = dispatch_group_create(); dispatch_grou ...
分类:
其他好文 时间:
2018-08-10 10:52:31
阅读次数:
163
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ [self downloadImage]; } -(void)downloadImage{ dispatch_group_t group = dispatch_grou... ...
分类:
其他好文 时间:
2018-06-28 14:06:39
阅读次数:
151