用于多线程提取或创建的CoreData模式

时间:2012-12-11 02:34:13

标签: core-data concurrency

我正在寻找一种CoreData设计模式,以确保线程安全的“获取或创建”。我有一种情况,两个不同的线程可能同时寻找相同的记录。如果找不到此记录,则由线程创建一个记录。不幸的是,两个线程都找不到这条记录,因此它们都创建了相同的记录。

1 个答案:

答案 0 :(得分:2)

雷迪,

执行此操作的一种方法是使用私有排队的MOC来完成所有创建 - 如果您愿意,还可以使用创建MOC。通过这种方式,您可以从您想要的任何MOC进行提取,如果失败,您可以在创建MOC上重新执行提取,如果它在那里失败,则创建它。这门学科将迫使你总是进行有序测试,没有重复的创作。您需要通过子MOC关系或通过“保存”合并通知来管理跨MOC协调。

安德鲁