【发布时间】:2012-03-11 18:37:57
【问题描述】:
目前关于新的 NSManagedObjectContext 并发类型的文献似乎有点稀少。除了 WWDC 2011 视频和我在此过程中获得的一些其他信息之外,我仍然很难掌握每种并发类型的使用方式。以下是我如何解释每种类型。如果我理解不正确,请纠正我。
NSConfinementConcurrencyType
这种类型在过去几年中已成为常态。 MOC 不受每个线程的影响。所以如果线程 A MOC 想要通过保存消息合并来自线程 B MOC 的数据,线程 A 需要订阅线程 B 的 MOC 保存通知。
NSPrivateQueueConcurrencyType
每个 MOC 树(父 MOC 和子 MOC)共享同一个队列,无论它们在哪个线程上。因此,每当发送来自这些上下文中的任何一个的保存消息时,它都会被放入专门为此 MOC 树制作的私人提示中。
NSMainQueueConcurrencyType
仍然对这个感到困惑。据我所知,它类似于 NSPrivateQueueConcurrencyType,只有私有队列在 main 线程上运行。我读到这有利于与 MOC 的 UI 通信,但为什么呢?为什么我会选择这个而不是 NSPrivateQueueConcurrencyType?我假设由于 NSMainQueueConcurrencyType 在主线程中执行,这不允许后台进程吗?这和不使用线程不一样吗?
【问题讨论】:
标签: iphone ios nsmanagedobjectcontext