美文网首页
原子属性

原子属性

作者: 0fbf551ff6fb | 来源:发表于2016-11-16 18:20 被阅读0次

    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;

    }

    相关文章

      网友评论

          本文标题:原子属性

          本文链接:https://www.haomeiwen.com/subject/pnmrpttx.html