我在使用NSPrivateQueueConcurrencyType
NSManagedObjectContext
,並在以下情況發生死鎖。在兩個線程上使用NSPrivateQueueConcurrencyType管理對象上下文時發生死鎖
在後臺線程上調用performBlock:。該塊包含executeFetchRequest:error:
呼叫。
當該塊正在執行時,主線程調用performBlockAndWait:
。主線程在後臺線程完成時等待。這很正常。
當在背景的線程塊上調用executeFetchRequest:error:
時,會發生死鎖。
我想象一下executeFetchRequest:error:
正在等待performBlockAndWait:
的主線程完成。
這是一個錯誤嗎?或者我不明白什麼?對我而言,所有這些代碼對於NSPrivateQueueConcurrencyType
MOC似乎都是有效的。
這不會發生很多,但是當它發生時,那麼......應用程序已經死亡。 – gcamp 2012-02-21 03:41:02