size_t ops = 16;
dispatch_queue_t dqueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_apply(ops, dqueue, ^(size_t nby) {...}
dispatch_apply 可以并发执行任务,完成, 内部实现,类似, group waiting 的操作. 当前队列执行完毕之后,继续往下执行.
NSLog(@"--start");
dispatch_queue_t myQueue = dispatch_queue_create("concurrent.queue", DISPATCH_QUEUE_CONCURRENT);
dispatch_apply(100, myQueue, ^(size_t n) {
NSLog(@"current thread: %@ --- %d", NSThread.currentThread.description, n);
});
NSLog(@"--end");
// 可以看出, 循环 100 次, 并行队列,接收提交的block,执行完毕之后,end. 多线程执行,有系统自动决定,线程数码
其他的, 后台队列,没有什么区别, 异步执行任务,
网友评论