Dispatch Queue 中的 Dispatch Queue Priority 和 QoS 有啥区别?
Posted
技术标签:
【中文标题】Dispatch Queue 中的 Dispatch Queue Priority 和 QoS 有啥区别?【英文标题】:What is difference between Dispatch Queue Priority and QoS in Dispatch Queue?Dispatch Queue 中的 Dispatch Queue Priority 和 QoS 有什么区别? 【发布时间】:2018-07-30 09:56:07 【问题描述】:DISPATCH_QUEUE_PRIORITY_HIGH 和用户交互的调度队列中的 QoS 有什么区别吗?
【问题讨论】:
【参考方案1】:Apple 已从 ios 8.0 弃用调度队列优先级,而不是我们可以使用服务质量。
所以基本上 QOS 和优先级做同样的事情。
【讨论】:
【参考方案2】:来自Apple documentation:
分派到队列的项目以高优先级运行;该队列被安排在任何默认优先级或低优先级队列之前执行。
此常量映射到 QOS_CLASS_USER_INITIATED 类。
所以,它们并不完全等价。
【讨论】:
嗨 Cristik,何时给予优先级或 QoS 以分配队列? @nettekar 文档应该给你最好的答案。如果您在文档中找不到它,您可以在 SO 上提出另一个问题。 如果我将背景作为 QoS 给予高优先级会发生什么?以上是关于Dispatch Queue 中的 Dispatch Queue Priority 和 QoS 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
Swift 3 中的 DISPATCH_QUEUE_T [重复]
CocoaPods 库中的强 dispatch_queue_t
GCD中的dispatch_get_global_queue(long identifier, unsigned long flags)
带有 NSAutoreleasePool 的嵌套 dispatch_async 中的 EXC_BAD_ACCESS