gpt4 book ai didi

iphone - Core Data 的多线程使用(NSOperationQueue 和 NSManagedObjectContext)

转载 作者:太空狗 更新时间:2023-10-30 03:18:59 25 4
gpt4 key购买 nike

在 Apple 的核心数据文档中 Concurrency with Core Data ,他们列出了线程安全的首选方法,因为每个线程使用单独的 NSManagedObjectContext,共享 NSPersistentStoreCoordinator。

如果我有许多 NSOperations 在 NSOperationQueue 上一个接一个地运行,是否会有大量开销为每个任务创建上下文?

由于 NSOperationQueue 的最大并发操作数为 1,我的许多操作将使用同一个线程。我可以使用线程字典为每个线程创建一个 NSManagedObjectContext 吗?如果这样做,我以后清理上下文时会遇到问题吗?

在此实例中使用 Core Data 的正确方法是什么?

最佳答案

在这种情况下使用 Core Data 的正确方法是为每个操作创建一个单独的 NSManagedObjectContext 以拥有您锁定的单个上下文(通过 - [NSManagedObjectContext lock] 使用前和-[NSManagedObjectContext unlock] 使用后)。如果操作是串行的并且没有其他线程使用上下文,则锁定方法可能有意义。

使用哪种方法是一个经验问题,没有数据就无法回答。变数太多,没有一个通用的规则。来自性能测试的硬数据是做出明智决定的唯一途径。

关于iphone - Core Data 的多线程使用(NSOperationQueue 和 NSManagedObjectContext),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1454473/

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