gpt4 book ai didi

ios - iOS中并发队列使用序列化目标队列

转载 作者:行者123 更新时间:2023-11-29 01:55:42 26 4
gpt4 key购买 nike

我正在阅读这篇优秀的博客文章( http://www.humancode.us/2014/08/14/target-queues.html )iOS 中的目标线程,我不禁想知道为什么我们需要这样的机制。在示例中,我们为自定义并发队列指定序列化目标队列。我们不能通过在序列化队列中执行原始并发队列中的 block 来实现同样的目标吗?

为并发队列设置序列化目标队列有什么意义????

最佳答案

如果我没听错,你是在问为什么有人会在并发队列上启动串行任务。

如果使用某些资源的大多数任务可以同时执行(也称为同时),但某些任务本质上与其他任务同时执行是不安全的,那么您将需要这种行为。

最常见的例子是读者/作者问题。例如,您在这里访问文件系统的某些资源。甚至可以从不同的线程阅读它——每个读者都会得到它所需要的。但是这里有必要更新该文件的内容。当有人阅读它时对其进行修改会导致不可预测的结果 - 不保证读者获得正确的预期信息(部分来自旧版本,部分来自新版本)。更糟糕的是 - 可能有两个编写器(如果应用程序用户和通过网络从某些中央存储更改文件内容) - 结果将是两个版本的疯狂混合(实际上,它现在甚至可能已损坏)

每个写入者都需要等待,直到所有其他任务执行完毕(没有人读取,没有人写入),并且每个读取者都需要等待,直到没有写入任务发生(没有人写入,无论有多少读取者)

Wikipedia 上有关于此的精彩文章。我没有遇到任何其他实际情况,您会需要它,但我相信还有更多。

希望它能回答你的问题

关于ios - iOS中并发队列使用序列化目标队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30891031/

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