ios - 为什么 GCD 中的组没有 dispatch_group_sync 函数?

标签 ios objective-c objective-c-blocks grand-central-dispatch

据说:

GCD lets us create groups, which allow you to place your tasks in one place, run all of them, and get a notification at the end from GCD. Those group blocks of code together ensure that all of them get executed by GCD one by one, as dependencies of one another.

由于这些 block 正在一个接一个地执行,因此从技术上讲,dispatch_group 的 GCD 函数应该是 dispatch_group_sync 而不是 dispatch_group_async

提前感谢您的精彩解释。

最佳答案

因为这里的async是相对于block提交的thread(Common main tread)而言的。

您不需要将组同步到该线程,您只需将代码添加到该线程,代码一个一个地执行。

此外,还有调度组。

  • 如果将任务添加到串行队列 (DISPATCH_QUEUE_SERIAL),则可以让任务一个接一个地执行。
  • 如果将这些任务添加到并发队列 (DISPATCH_QUEUE_CONCURRENT),您还可以让这些任务并发执行。

关于ios - 为什么 GCD 中的组没有 dispatch_group_sync 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30343031/

相关文章:

ios - 检测 AVPlayer 何时达到总播放时间的一定百分比?

objective-c - __block 说明符如何工作?

ios - 使用 block 翻转UIImageView

ios - 无论如何,当我的应用程序在iOS App中处于前台时,是否可以停止屏幕锁定?

objective-c - 使用动态代码枚举 NSArray 的 block 闭包和三元运算符

ios - 如何在不同线程上同步分派(dispatch)具有多个参数的 block ?

iphone - 自定义以编程方式创建的导航栏的背景图像

ios - __bridge 不需要方法参数?

在沙盒模式下重新启动后找不到 iOS 7 应用收据

ios - 在 info.plist (xcode iOS) 的第 0 项中只有一种自定义字体被识别