Multithreading CoreData与后台线程的死锁

Multithreading CoreData与后台线程的死锁,multithreading,core-data,Multithreading,Core Data,我使用的是共享同一NSPersistentStoreCoordinator的经典多MOC,因为据我所知,它的性能优于父/子上下文: 我在创建上下文并在创建上下文的线程/队列上使用它们时非常小心 僵局是这样的: 主线程正在执行提取请求,并挂起在[NSManagedObjectContext executeFetchRequest:错误:] #0 0x3ad840fc in __psynch_mutexwait () #1 0x3accd128 in pthread_mutex_lock () #

我使用的是共享同一NSPersistentStoreCoordinator的经典多MOC,因为据我所知,它的性能优于父/子上下文:

我在创建上下文并在创建上下文的线程/队列上使用它们时非常小心

僵局是这样的:

主线程正在执行提取请求,并挂起在[NSManagedObjectContext executeFetchRequest:错误:]

#0 0x3ad840fc in __psynch_mutexwait ()
#1 0x3accd128 in pthread_mutex_lock ()
#2 0x328eee90 in -[_PFLock lock] ()
#3 0x328ff350 in -[NSPersistentStoreCoordinator executeRequest:withContext:error:] ()
#4 0x328fdf16 in -[NSManagedObjectContext executeFetchRequest:error:] ()
后台线程挂起在调用[coordinator ManagedObjectedForUriRepresentation:objector]之前我放在持久存储协调器上的锁上

#0 0x3ad840fc in __psynch_mutexwait ()
#1 0x3accd128 in pthread_mutex_lock ()
#2 0x328eee90 in -[_PFLock lock] ()
#3 0x00093180 in -[DataManager getObjectByUri:context:] 

我知道这是很难调试从一个职位,但任何想法将不胜感激。顺便说一句,这种情况很少发生。

你还能提供一些代码吗?Alexei-我决定改用父/子上下文,看看这是否有助于解决我的问题。我会让你知道我是否再次看到僵局。谢谢你的帮助。