ios NSLock死锁及解决办法

作者: 小熊_07cb | 来源:发表于2019-03-28 15:02 被阅读34次

    NSLock死锁及解决办法

    代码如下:

    输出结果:1

    这就照成了死锁

    原因如下:由于当前线程运行到第一个lock加锁,现在再次运行到lock同样的锁,需等待当前线程解锁,把当前线程挂起,不能解锁

    NSLock是非递归锁,当同一线程重复获取同一非递归锁时,就会发生死锁

    解决办法:

    我们可以用NSRecursiveLock或者@synchronized替代NSLock

    因为NSRecursiveLock或者@synchronized都是递归锁,

    递归锁:它允许同一线程多次加锁,而不会造成死锁。

    原文:https://blog.csdn.net/qq_14927837/article/details/88868559

    相关文章

      网友评论

        本文标题:ios NSLock死锁及解决办法

        本文链接:https://www.haomeiwen.com/subject/kfrmfqtx.html