两个不同线程上的两个NSManagedObjectContext可以同时保存(持久存储到磁盘)吗?

时间:2012-09-26 10:25:23

标签: objective-c core-data

目标C大师,我有一个简单的问题要问:

我现在有两个不同的线程在后台运行,每个线程都分配了NSManagedObjectContext

现在,问题是:两个NSManagedObjectContext同时使用公共/共享NSPersistentStoreCoordinator保存[保留到磁盘]是否安全?

换句话说,两个不同的后台线程可以同时持续存储到磁盘吗?

非常感谢。

1 个答案:

答案 0 :(得分:1)

NSPersistentStoreCoordinator不是线程安全的,但你不必担心它。 NSManagedObjectContext知道如何在使用时锁定商店(在保存期间)。

因此,拥有共享同一商店的多个上下文是正确的。这是App Store Documentation建议的方法:

  

为每个线程创建一个单独的托管对象上下文并共享一个   单一持久性商店协调员。

希望有所帮助。