【iOS】声明原子和非原子属性

1,原子性(atomic):OC语言中属性设置默认是原子性的,在调用属性的setter方法的时候只能一个一个调用,不会出现多条线程同时调用setter方法,相当于在函数开始和结束加了锁定.这样并发访问属性时性能会变低.
2,非原子性(nonatomic):通常在OC语言中声明属性都是非原子性的,调用setter方法的时候不锁定多个线程可以同时调用属性,这样并发访问时效率会比较高

总结:

atomic:setter方法会加锁,线程安全,消耗资源多
nonatomic:setter方法不会加锁,非线程安全,消耗资源少
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 基础 1. 为什么说Objective-C是一门动态的语言? 2. 讲一下MVC和MVVM,MVP? 3. 为...
    波妞和酱豆子阅读 3,389评论 0 46
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,225评论 30 472
  • 1- 简单使用 1.1依赖 根据你studio的buildToolsVersion来写(不然编译不通过)。例如我的...
    凯玲之恋阅读 824评论 0 0
  • 还记得《与山巨源绝交书》吗,你会想山涛与稽康一定是绝交了吗?非也。有种友情,他不关官场,只关注内心。稽康在死之后,...
    窈窕知性阅读 730评论 0 0