gpt4 book ai didi

ios - 有什么理由共享一个调度队列吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:58:45 25 4
gpt4 key购买 nike

我正在处理一些我无法联系到原始开发人员的代码。

他将一个类传递给另一个类的串行调度队列的引用,我看不出他有任何目的,而不仅仅是创建另一个调度队列(每个类都是一个单例)。

这不会造成问题,但我想进一步了解它,因此欢迎任何对积极影响的见解,谢谢。

编辑:我建议阅读这里的所有答案,他们解释了很多。

最佳答案

以这种方式共享队列实际上不是一个好主意(不,不是因为它们很昂贵——它们不是,恰恰相反)。理由是除了队列的创建者之外,任何人都不清楚队列的语义是什么。是连续的吗?同时?高优先级?低优先级?一切皆有可能,并且一旦您开始传递实际上是为特定类的利益而创建的内部队列,外部调用者就可以在其上安排工作,这会导致相互死锁或以其他方式与该类上的其他项目发生意外行为队列,因为调用者 A 知道期望并发行为,而调用者 B 认为这是一个串行队列,没有并发执行所暗示的任何“陷阱”。

因此,只要有可能,队列就应该隐藏类的实现细节。该类可以根据需要导出针对其内部队列安排工作的方法,但这些方法应该是唯一的访问者,因为它们是唯一确定如何最好地访问和安排特定类型队列上的工作的方法!

关于ios - 有什么理由共享一个调度队列吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18665496/

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