Dou*_*yle 14 iphone multithreading core-data objective-c
在Apple的核心数据并发核心数据文档中,他们列出了线程安全的首选方法,即每个线程使用单独的NSManagedObjectContext和共享的NSPersistentStoreCoordinator.
如果我有一些NSOperations在NSOperationQueue上一个接一个地运行,那么每个任务创建上下文会有很大的开销吗?
由于NSOperationQueue的最大并发操作数为1,因此我的许多操作将使用相同的线程.我可以使用线程字典为每个线程创建一个NSManagedObjectContext吗?如果我这样做,我以后会有问题清理我的背景吗?
在这种情况下使用Core Data的正确方法是什么?
Bar*_*ark 19
在这种情况下,使用Core Data的正确方法是创建单独的NSManagedObjectContext每个操作或具有您锁定的单个上下文(通过-[NSManagedObjectContext lock]在使用之前和-[NSManagedObjectContext unlock]使用之后).如果操作是串行的并且没有其他线程使用上下文,则锁定的方法可能有意义.
使用哪种方法是一个经验问题,没有数据就无法解决.变量太多,不具备一般规则.性能测试中的硬数字是做出明智决策的唯一方法.
| 归档时间: |
|
| 查看次数: |
9227 次 |
| 最近记录: |