gpt4 book ai didi

swift - 为什么在 Playground 中运行时调度的 print() 的顺序会改变?

转载 作者:行者123 更新时间:2023-11-28 07:52:57 26 4
gpt4 key购买 nike

在 Udacity 的 GCD 类(class)中有一个小测验:

let q = DispatchQueue.global(qos: .userInteractive)
q.async { () -> Void in
print("tic")
}
print("tac")

先打印哪个?

正确答案是:tac,然后是tic。似乎合乎逻辑。

但是,为什么只有在我创建 Xcode 项目时才会这样?在 playground 中,它打印 tic,然后打印 tac。我错过了什么?

最佳答案

在 GCD 中

DispatchQueue.global(qos: .userInteractive).async{}

在下面

DispatchQueue.main.async{}

即使认为它作为 UI 线程具有服务质量 (qos),但这并不意味着它是主线程。所以 play ground 和 ui project 的性能可能存在差异

请同时检查苹果文档。

Apples documentation on GCD

关于swift - 为什么在 Playground 中运行时调度的 print() 的顺序会改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49217458/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com