美文网首页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