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

时间:2015-05-20 07:29:00

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

据说:

  

GCD让我们创建群组,您可以将这些群组放在一个地方,运行所有群组,并在最后通过GCD获取通知。这些组代码块共同确保所有这些代码块都被GCD 逐一 执行,作为彼此的依赖关系。

当这些块逐个执行时,技术上dispatch_group的GCD功能应该是 dispatch_group_sync 而不是 dispatch_group_async

提前感谢您的解释。

1 个答案:

答案 0 :(得分:3)

因为 async 与提交块的线程(Common main tread)有关。

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

此外,还有派遣小组。

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