- OC在定义属性时有nonatomic和atomic两种选择
- atomic:原子属性,为setter方法加锁(默认就是atomic)
- nonatomic:非原子属性,不会为setter方法加锁
原子与非原子属性的选择
-
nonatomic和atomic对比
-
atomic:线程安全,需要消耗大量的资源
-
nonatomic:非线程安全,适合内存小的移动设备
-
iOS开发的建议
-
所有属性都声明为nonatomic
-
尽量避免多线程抢夺同一块资源
-
尽量将加锁、资源抢夺的业务逻辑交给服务器端处理,减小移动客户端的压力
网友评论