atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作
nonatomic:非原子属性,不会为setter方法加锁,线程不安全的,效率高
atomic:(默认属性)原子属性,为setter方法加锁,线程安全的,效率相对低
1). atomic提供多线程安全。是防止在写未完成的时候被另外一个线程读取,造成数据错误
2). non-atomic:在自己管理内存的环境中,解析的访问器保留并自动释放返回的值,如果指定了nonatomic,那么访问器只是简单地返回这个值
- 所有属性都声明为nonatomic
- 尽量避免多线程抢夺同一块资源
- 尽量将加锁、资源抢夺的业务逻辑交给服务器端处理,减少移动客户端的压力