核心数据并发和线程安全解决方案

时间:2014-09-03 09:51:34

标签: ios multithreading core-data singleton

我正在看这个教程:A Guide to Core Data Concurrency

特别是我正在查看解决方案编号1,它使用单例和两个上下文。

我的问题是:检索上下文(和其他方法)线程安全的方法是什么?怎么没有控制权?

1 个答案:

答案 0 :(得分:0)

引用上下文是线程安全的,但是如果它是NSPrivateQueueConcurrencyType类型,则必须对上下文的专用队列执行任何操作。第二个解决方案虽然与所有单例和吸气剂有点过于复杂,但它符合我一直使用的模式,并且似乎很常见:

http://www.cocoanetics.com/2012/07/multi-context-coredata/

从我所看到的,保存通知正在通过父上下文自动传播取代。

XCode 6和Yosemite似乎在核心数据调试方面也有所改进:http://oleb.net/blog/2014/06/core-data-concurrency-debugging/。如果为调试方案设置-com.apple.CoreData.ConcurrencyDebug 1,则应该能够捕获常见的线程冲突。