gpt4 book ai didi

iphone - 在两个线程上使用 NSPrivateQueueConcurrencyType 托管对象上下文时出现死锁

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

我正在使用 NSPrivateQueueConcurrencyType NSManagedObjectContext 并且在以下情况下会发生死锁。

在后台线程上,调用 performBlock: 。该 block 包含一个 executeFetchRequest:error: 调用。

当该 block 正在执行时,主线程调用 performBlockAndWait:。主线程等待后台线程 block 完成。这很正常。

executeFetchRequest:error: 在后台线程 block 上调用时,会发生死锁。

我想 executeFetchRequest:error: 正在等待 performBlockAndWait: 的主线程完成。

这是一个错误吗?或者我不明白什么?对我来说,所有这些代码似乎都适用于 NSPrivateQueueConcurrencyType MOC。

最佳答案

NSPrivateQueueConcurrencyType 不会自动使 NSManagedObjectContext 成为线程安全的。如果您需要在多个线程上使用 Core Data,您仍然应该为每个线程使用单独的上下文。

关于iphone - 在两个线程上使用 NSPrivateQueueConcurrencyType 托管对象上下文时出现死锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9371847/

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