【发布时间】:2020-01-02 18:17:39
【问题描述】:
我读了这篇文章:GCD global concurrent queue not always concurrent(iOS device)?,这就是我想澄清的:
文档 (https://developer.apple.com/documentation/dispatch/1431058-dispatch_block_cancel) 说不能取消开始执行的任务。
建议任何分派到全局并发队列的块将自动开始执行,因此任何取消尝试都会有效地失败,这是否正确?
更具体地说 - 如果我将 1000 个任务排入队列,而每个任务需要 1000 秒才能完成,这是否意味着在 小于 1000 秒内所有任务将开始执行和取消任何任务其中会失败?
iOS 和 OSX 的答案是否相同?
UPD:我想让这个问题更清楚。是否有可能对于给定数量的任务显着超出设备的计算能力,会出现这样一种情况,即我们将无法取消在全局并发队列中排队的任务,因为它们都是从哪里开始的?
【问题讨论】:
标签: ios objective-c macos grand-central-dispatch