美文网首页
关于NSMutableDictionary线程安全

关于NSMutableDictionary线程安全

作者: 小马过海 | 来源:发表于2021-07-28 23:01 被阅读0次

    我们都知道,NSMutableDictionary是线程不安全的。

    NSMutableDictionary线程不安全会崩溃,之前认为不安全原因主要是因为一个对象去设置一个值,另外一个线程同时去设置,可能会导致值对象内存重复释放。

    按着这个思路,今天在一个多线程不会同时去设置同一个key时,发现一样也会崩溃。比较纳闷。

    网上搜了一下,有提到线程不安全确认不仅和内存重复释放这方面有关,还有可能访问到垃圾内存,但没说具体原因。

    细想一下,会不会是字典扩容呢。

    对,如果是字典扩容的时候,多线程访问很有可能访问到垃圾内存。

    然后做了个测试,初始化不同的capacity,发现50个线程设置了100个capacity的时候,确实没有再出现崩溃了。

    知道了崩溃的原因,其实像有些情况如果知道大概NSMutableDictionary用的情景,如果追求高效率,设置一个合适的capacity,也未尝不可以在多线程中不使用锁直接使用哈

    相关文章

      网友评论

          本文标题:关于NSMutableDictionary线程安全

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