主队列异步与默认队列异步说明

时间:2019-05-22 04:54:40

标签: ios xcode concurrency grand-central-dispatch

我刚刚观看了raywenderlich.com video,并拿走了this screenshot所涉及的代码(@ 22:30)。

我想知道mainQueue.asyncdefaultQueue.async之后如何完成,尽管被放置在我认为是较高优先级的队列中(默认为userInteractiveuserInitiated,但无论更高比default好吗?)。我观看了整个视频,觉得自己对所有内容都掌握了很深的了解,直到看到为止。有人可以解释吗?提前非常感谢。

1 个答案:

答案 0 :(得分:1)

屏幕快照中的代码不足以真正了解正在发生的事情,但是我认为问题是这样的:

主队列很特殊;与所有其他调度队列不同,添加到主队列中的块由应用程序的主运行循环调度。所有其他调度队列在任何可用线程上执行块。

因此,当您排队等待在后台运行的块几乎立即开始时,您排队等待在主线程上运行的任何东西都必须等到主运行循环循环之后,并且必须与计时器,用户输入事件,等等。