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

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

总结:

atomic:setter方法会加锁,线程安全,消耗资源多
nonatomic:setter方法不会加锁,非线程安全,消耗资源少
上一篇 下一篇

猜你喜欢

热点阅读