nonatomic、atomic区别
来源:互联网 发布:python是面向对象吗 编辑:程序博客网 时间:2024/05/16 13:53
atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作。
atomic
设置成员变量的@property属性时,默认为atomic,提供多线程安全。
在多线程环境下,原子操作是必要的,否则有可能引起错误的结果。加了atomic,setter函数会变成下面这样:
{lock}
if (property != newValue) {
[property release];
property = [newValue retain];
}
{unlock}
nonatomic
禁止多线程,变量保护,提高性能。
atomic是Objc使用的一种线程保护技术,基本上来讲,是防止在写未完成的时候被另外一个线程读取,造成数据错误。而这种机制是耗费系统资源的,所以在iPhone这种小型设备上,如果没有使用多线程间的通讯编程,那么nonatomic是一个非常好的选择。
指出访问器不是原子操作,而默认地,访问器是原子操作。这也就是说,在多线程环境下,解析的访问器提供一个对属性的安全访问,从获取器得到的返回值或者通过设置器设置的值可以一次完成,即便是别的线程也正在对其进行访问。如果你不指定 nonatomic ,在自己管理内存的环境中,解析的访问器保留并自动释放返回的值,如果指定了 nonatomic ,那么访问器只是简单地返回这个值。
- nonatomic、atomic区别
- ios atomic nonatomic区别
- ios atomic nonatomic区别
- atomic和nonatomic区别
- atomic与nonatomic区别
- iOS atomic和nonatomic区别
- nonatomic与atomic的区别
- NONATOMIC与ATOMIC的区别
- atomic和nonatomic的区别
- nonatomic和atomic之间的区别
- IOS atomic和nonatomic的区别
- 转:nonatomic与atomic的区别
- iOS开发多线程篇---atomic nonatomic区别
- iOS开发多线程篇---atomic nonatomic区别
- [OC]之 atomic 与 nonatomic的区别
- iOS开发多线程atomic nonatomic区别
- property属性的atomic和nonatomic区别
- OC 之 atomic 与 nonatomic的区别
- nginx模块开发的有用链接
- Chrome 扩展开发之消息传递
- NodeJs:module.filename、__filename、__dirname、process.cwd()和require.main.filename 解惑
- android实现使用绘图作出一种裁剪任意多边形快速算法
- 东软睿道实训推荐:无经验的求职者应该如何准备面试(2)
- nonatomic、atomic区别
- 随写
- 路由器题目
- IOS访问限制密码忘记解决方案
- 在Eclipse中使用JUnit4进行单元测试(高级篇)
- java连接linux中mysql出现:Access denied for user 'root'@'192.168.91.1' (using password: YES)
- 【LeetCode】Path Sum
- ****有关onActivityResult提前调用的问题
- 重定义NSLog