【发布时间】:2012-12-11 02:34:13
【问题描述】:
我正在寻找一种能够确保线程安全的“获取或创建”的 CoreData 设计模式。我有一种情况,两个不同的线程可能同时在寻找相同的记录。如果未找到此记录,则线程会创建一条记录。不幸的是,两个线程都没有找到这条记录,所以它们都创建了相同的记录。
【问题讨论】:
标签: core-data concurrency
我正在寻找一种能够确保线程安全的“获取或创建”的 CoreData 设计模式。我有一种情况,两个不同的线程可能同时在寻找相同的记录。如果未找到此记录,则线程会创建一条记录。不幸的是,两个线程都没有找到这条记录,所以它们都创建了相同的记录。
【问题讨论】:
标签: core-data concurrency
雷迪,
执行此操作的一种方法是使用私有队列 MOC 来执行所有创建 - 如果您愿意,可以使用创建 MOC。这样,您可以从您想要的任何 MOC 进行提取,如果失败,您在创建 MOC 时重新执行提取,如果在那里失败则创建它。这门学科将迫使您始终进行有序的测试,并且没有重复的创作。您将需要通过子 MOC 关系或通过“已保存”合并通知来管理跨 MOC 协调。
安德鲁
【讨论】: