iOS   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了objective-c – NSManagedObjectContext performBlockAndWait从两个线程调用时导致死锁大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_772_2@ @H_801_3@概述 我有一个OSX应用程序,我正在使用父/子NsmanagedObjectContext设置.子MOC有NSPrivateQueueConcurrencyType,是我主要使用的那个.父级设置为NsmainQueueConcurrencyType 当我从后台线程调用子上下文的performBlockAndWait,同时从主线程调用它时,我得到死锁 – semaphore_wait_trap.暂停调试器
@H_772_2@
@H_772_2@ @H_772_2@
@H_772_2@
@H_450_18@ 我有一个OSX应用程序,我正在使用父/子NsmanagedObjectContext设置.子MOC有NSPrivateQueueConcurrencyType,是我主要使用的那个.父级设置为NsmainQueueConcurrencyType

当我从后台线程调用子上下文的performBlockAndWait,同时从主线程调用它时,我得到死锁 – semaphore_wait_trap.暂停调试器显示两个线程都停留在performBlockAndWait

我怎么能绕过这个?我认为这个方法针对这种情况而设计的,只是将上下文的私有队列中的块排队然后适当地返回?

@H_772_2@

解决方法

我通过创建一个串行队列来解决这个问题,然后通过这个来完成所有的performBlock调用,以确保它们不会互相混乱.老实说,我不确定这是不是很好的做法,但它确实解决了我的特殊情况. @H_772_2@ @H_772_2@
@H_772_2@
@H_772_2@@H_772_2@

大佬总结

以上是大佬教程为你收集整理的objective-c – NSManagedObjectContext performBlockAndWait从两个线程调用时导致死锁全部内容,希望文章能够帮你解决objective-c – NSManagedObjectContext performBlockAndWait从两个线程调用时导致死锁所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。