属性中的修饰符:
nonatomic非原子属性:
atomic:原子属性:
原子属性(线程安全),针对多线程设计的,默认值。
保证同一时间只有一个线程能够写入(但是同一时间多个线程都可以取值)atomic本身就是一把锁(自旋锁)
单写多读:单个线程写入,多个线程可以读取。
//注意:线程锁所得是代码块,不是其他。是不能访问对应的代码块。
nonatomic和atomic的区别:
atomic:线程安全,乣消耗大量的资源。
nonatomic:线程不安全,适合内存小的移动设备。
iOS开发的建议:
所有属性都声明为nonatomic
尽量避免多线程抢夺同一资源。
尽量将加锁、资源抢夺的业务逻辑交给服务器端处理,减小移动客户端的压力。
注释:原子属性只能保证只读的时候不出问题,但是他不能保证同时读写的时候不出问题。