3
这个问题几乎涵盖了这一切。如果我将N个块放入NSManagedObjectContext的队列中,它会按顺序执行它们,保证它们还是有可能会有一些可能被扰乱?NSManagedObjectContext的performBlock方法是否可以保证操作的顺序?
这个问题几乎涵盖了这一切。如果我将N个块放入NSManagedObjectContext的队列中,它会按顺序执行它们,保证它们还是有可能会有一些可能被扰乱?NSManagedObjectContext的performBlock方法是否可以保证操作的顺序?
我看不出为什么NSManagedObjectContext不会在内部使用GCD,并且GCD队列严格是FIFO。当然,我没有证据可以证实这一点,但对我来说这是非常有意义的,因为performBlock
的目标是线程安全的,并且在给定的上下文中一次只执行一个操作,为什么Apple会从零开始编写一个系统当一个完美功能的(GCD)已经存在时。
当您使用多个队列时,依赖关系为。关于这个问题的每一段文字和视频都说队列本身就是FIFO。但是,并发队列可能会以看似随机的顺序完成任务,因为它们将并行执行,但它们将在FIFO中启动。尽管这种类型的队列不适合管理对象上下文,但它的目标是在任何给定的时间只执行一次操作。 – borrrden
然后我想我真的误解了我正在阅读的主题。有时间重新阅读参考文献。虽然......也许我对队列运行多个并发操作的能力感到困惑,如果一个操作依赖于以前的操作,那么依赖关系才有意义... – RonLugge
我认为如果您使用'.PrivateQueueConcurrencyType 'type - 所以基本上是一个临时的MOC,它是并发的,虽然它们是以FIFO开始的,但它们不会按照相同的顺序完成,但只有'performBlock'才能发生,它也发生在我身上。我最后排队了一个** save **块,但其他一些块最后完成了,这给我带来了麻烦。 –