原子属性

1.原子属性是线程安全的atomic,但并不是绝对的安全 原子属性只是保护的set和get方法,比如array,他有add方法,所以对于数组来说,他就不能保证线程安全。

2.定义属性的时候如果什么都不写的话 那么定义的属性默认是atomic

3.定义属性的时候如果同时重写了set和get方法,那么就不会生成_属性,如果想要使用_属性,那么就执行

@synthesize name = _name

4.原子属性不能解决同时访问共享资源是因为它读和写还是分离的。他只保护了写的操作。

5.原子属性安全是因为他可以多读,但是同一时间只可以允许一个线程进行写入

6.atomic比较耗费性能,建议都使用nonatomic,尽量避免同时访问共享资源,如果避免不了的话,最好让后台去操作。

set方法

-(void)setname:(NSString *)name {

      利用互斥锁让同一时间只有一个线程可以写入

         @synchronized(self) {

          _name = name;

      }

}

get方法

-(NSString *)name {

             return _name;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,314评论 19 139
  • OC在定义属性时有nonatomic和atomic两种选择 atomic:原子属性,为setter方法加锁(默认就...
    彬至睢阳阅读 3,658评论 0 1
  • 看过胡杨女人这部电视,就对胡杨和沙漠充满了好奇,生活不只是苟且,还有诗和远方。于是随着乐途的群友来一场说走就走的旅...
    干涸的海阅读 4,516评论 1 4
  • http://megaease.com/#mission 不改一行代码做秒杀! 致力于为企业提供云化的应用架构 不...
    集库阅读 11,629评论 0 0
  • 当企业家劝说渔翁利用他高超的捕鱼技能多捕一点鱼,然后发家致富,创办企业,走向财富自由时,渔翁问企业家:“在我...
    燃烧的十二三阅读 2,732评论 2 0