ios - dispatch_group_wait 是否允许插队?

标签 ios macos grand-central-dispatch

这个问题是关于 Grand Central Dispatch 的,尤其是 dispatch_group_wait()

假设一个名为 groupdispatch_group 中有 10 个任务等待执行。

在其他地方,我有一个任务需要等待 group 中的任何任务完成才能执行。为了实现这一点,我使用了 dispatch_group_wait(group, DISPATCH_TIME_FOREVER)

为了区别于 group 中的任务,我将其称为 lonelyTask

如果在 lonelyTask 等待时另一个任务被添加到 group 中,它首先被执行,lonelyTask 或添加到 ?换句话说,添加到 group 的任务是否在另一个任务等待执行时先于等待执行的任务“插队”,或者它们被调用的顺序是否保持不变?

我已经搜索了文档,但没能找到这个问题的答案...

最佳答案

dispatch_group_waitdispatch_group_notify 都在等待进入组的项数过渡到零。因此,如果您在原始十个任务全部完成之前将第十一个任务添加到组中,则调用 dispatch_group_wait 将等待所有十一个任务完成后再继续。

关于ios - dispatch_group_wait 是否允许插队?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30607991/

相关文章:

objective-c - 在iPhone中解析相同的元素名称

ios - iPhone/shell 命令提示符的调试桥

objective-c - 如何将整数与 Objective-C 枚举进行比较

linux - 如何对多个文件运行拼写检查并在 shell 脚本中显示任何不正确的单词?

iphone - 在后台线程上准备 View 元素

iphone - 如何在iPhone中的Web View 上显示详细信息(来自Web服务)?

ios - 使用 Cassini 进行 SSL 身份验证

objective-c - 核心动画和 CALayers 中的残留/痕迹

ios - 如何使用GCD控制动画序列

iphone - 如何使用 NSURLConnection 异步上传大图?