美文网首页iOS学习iOS开发技能
nonatomic和atomic选择(iOS)

nonatomic和atomic选择(iOS)

作者: iOS_成才录 | 来源:发表于2015-11-12 19:51 被阅读467次

    一、前言

    • OC在定义属性时有nonatomic和atomic两种选择
      • atomic:原子属性,为setter方法加锁(默认就是atomic)
      • nonatomic:非原子属性,不会为setter方法加锁

    二、原子和非原子属性的选择

    1、nonatomic和atomic对比

    • atomic:线程安全,需要消耗大量的资源
    • nonatomic:非线程安全,适合内存小的移动设备

    2、选择 —> iOS开发的建议

    • 所有属性都声明为nonatomic
    • 因为nonatomic是线程不安全的,所以我们要尽量避免多线程抢夺同一块资源
    • 尽量将加锁、资源抢夺的业务逻辑交给服务器端处理,减小移动客户端的压力

    相关文章

      网友评论

      • ece172c77b92:那同时操作一个属性,写atomic就可以避免两个线程同事访问吗?
        ece172c77b92:@维维豆奶1991 是的,而且加锁是最坏的方法了
        维维豆奶1991:可以避免同时访问,但是不能保证线程安全。你懂么?

      本文标题:nonatomic和atomic选择(iOS)

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