gpt4 book ai didi

ios - maxConcurrentOperationCount = 1 的 NSOperation 和 NSOperationQueue

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:01:12 27 4
gpt4 key购买 nike

我想用 NSOperationQueue 实现一个串行队列。所以我为我的 NSOperationQueue 设置了 maxConcurrentOperationCount = 1。现在有几个问题

现在我还需要在子类 NSOperation 中将 concurrent 设置为 YES 以使其串行化吗?

如果我为 NSOperation 设置 concurrent 为 YES,虽然 maxConcurrentOperationCount 为 1,我仍然可以让 2 个或更多 NSOperations 并行运行吗??

最佳答案

根据我的阅读方式Apple's documentation , NSOperation 中的 concurrent 属性是只读的,它告诉我们操作是否异步运行。如果您计划手动开始操作,您需要让您的 NSOperation 为 asynchronous 返回 YES,以避免阻塞您开始操作的线程。如果您手动运行它们,concurrent 属性仅用于监视操作的状态

如果您将 NSOperation 添加到 NSOperationQueue 中,队列将忽略 asynchronous 属性的值,并根据maxConcurrentOperationCount

因此,回答您的问题:如果您手动运行所有操作,并将 asynchronous 设置为 YES,则并行运行的操作数将取决于有多大延迟是在您每次调用 start 操作与完成操作之间需要多长时间。如果将它们添加到队列中,您的队列将作为串行队列一个接一个地运行操作。

关于ios - maxConcurrentOperationCount = 1 的 NSOperation 和 NSOperationQueue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30106594/

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