dispatch_apply可以 在多个线程中同时(异步)遍历多个数字。
无论是在串行队列,还是异步队列中,dispatch_apply 都会等待全部任务执行完毕,就像是同步操作,也像是队列组中的 dispatch_group_wait方法。
#pragma mark dispatch_apply
-(void)gcd_dispatch_apply {
NSLog(@"apply---begin");
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_apply(6, queue, ^(size_t index) {
NSLog(@"%zd --- %@", index, [NSThread currentThread]);
});
//需要等待执行结束
NSLog(@"apply---end");
}
![](https://img.haomeiwen.com/i5240513/067be93c0c700fb0.png)
网友评论