2012-09-06 46 views

回答

3

我看不出为什么NSManagedObjectContext不会在内部使用GCD,并且GCD队列严格是FIFO。当然,我没有证据可以证实这一点,但对我来说这是非常有意义的,因为performBlock的目标是线程安全的,并且在给定的上下文中一次只执行一个操作,为什么Apple会从零开始编写一个系统当一个完美功能的(GCD)已经存在时。

+1

当您使用多个队列时,依赖关系为。关于这个问题的每一段文字和视频都说队列本身就是FIFO。但是,并发队列可能会以看似随机的顺序完成任务,因为它们将并行执行,但它们将在FIFO中启动。尽管这种类型的队列不适合管理对象上下文,但它的目标是在任何给定的时间只执行一次操作。 – borrrden

+0

然后我想我真的误解了我正在阅读的主题。有时间重新阅读参考文献。虽然......也许我对队列运行多个并发操作的能力感到困惑,如果一个操作依赖于以前的操作,那么依赖关系才有意义... – RonLugge

+1

我认为如果您使用'.PrivateQueueConcurrencyType 'type - 所以基本上是一个临时的MOC,它是并发的,虽然它们是以FIFO开始的,但它们不会按照相同的顺序完成,但只有'performBlock'才能发生,它也发生在我身上。我最后排队了一个** save **块,但其他一些块最后完成了,这给我带来了麻烦。 –

相关问题