atomic,默认属性,编译器会在property上自动添加原子锁
nonatomic,不考虑多线程情况时使用,提高效率atomic本质上就是给get/set方法加锁,即原子锁,以避免线程A还没执行完setter,线程B又开始执行的,导致读取数据错误的问题。
atomic一定是线程安全的么?
不一定,首先atomic的释义是原子性,并不是线程安全。原子性这个概念表示一个操作序列就像一个操作一样不被打断,而不像一个操作序列一样中间容许被打断。所以nonatomic一定是线程不安全的,但是atomic却不一定是线程安全的。假设线程A执行在对某属性get之前线程B release了该属性,会导致程序崩溃。
多线程——atomic nonatomic的区别
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 接着上节 mutex,本节主要介绍atomic的内容,练习代码地址。本文参考http://www.cplusplu...
- 第三章 Java内存模型 3.1 Java内存模型的基础 通信在共享内存的模型里,通过写-读内存中的公共状态进行隐...
- 原文:http://www.cocoachina.com/ios/20170707/19769.html 本文主要...
- 原文地址:艾艺信息 用户体验(UX)是一个很奇妙的词,它本身并没有被定义为任何一件特定的事。它不等价于UI,简单的...