美文网首页iOS Study
atomic的实现机制和安全性

atomic的实现机制和安全性

作者: 晴川历历汉阳树丶 | 来源:发表于2020-05-11 15:15 被阅读0次

1.atomic的实现机制

用atomic修饰的值类型属性赋值的时候,系统会给getter和setter方法里面加一个锁,来保证同时只有一个线程能访问或者修改该属性。保证读写的原子性。所以atomic能保证属性的存取时是线程安全的

2.atomic为什么不能保证绝对的线程安全?

2.1 因为atomic给getter和setter方法加了锁,但是只能保证存取是安全的,如果我此时创建了一个用atomic修饰的可变数组,atomic无法保证在对数组进行修改是线程安全的

2.2 在编译器自己创建的getter/setter方法里面,最终会调到objc_getProperty和objc_setProperty方法,在这两个方法内部,atomic保证了读写线程的安全。但是,如果我重写了getter/setter方法,那atomic对getter/setter的保护也就没了,这时候就需要自己去维护线程安全了。

相关文章

  • atomic的实现机制和安全性

    1.atomic的实现机制 用atomic修饰的值类型属性赋值的时候,系统会给getter和setter方法里面加...

  • 部分iOS基础知识(一)

    1.在定义 property 的时候atomic 和 nonatomic的区别及安全性问题 atomic 和 no...

  • atomic的实现机制

    atomic作用:多线程下将属性设置为atomic可以保证读取数据的一致性。因为他将保证数据只能被一个线程占用,也...

  • iOS开发常问问题:讲一下atomic的实现机制;为什么不能保证

    A: atomic的实现机制 atomic是property的修饰词之一,表示是原子性的,使用方式为@proper...

  • atomic 和 nonatomic的区别

    首先atomic 和 nonatomic 都不能保证线程的安全性;atomic:如果我们对属性 不设置atomi...

  • 二、atomic 实现机制

    atomic作用: 多线程下将属性设置为atomic可以保证读取数据的一致性。因为他将保证数据只能被一个线程占用,...

  • 原子属性

    非原子属性nonatomic 和原子属性atomic 原子属性atomic:就是为了保证这个属性的安全性(线程安全...

  • 题库整理(一)

    1.atomic和nonatomic的区别?atomic一定是线程安全的吗?atomic如何实现atomic? a...

  • atomic安全性

    atomic与nonatomicd的主要区别就是系统自动生成的getter/setter方法不一样 atomic系...

  • 总结

    #### 讲一下atomic的实现机制;为什么不能保证绝对的线程安全(最好可以结合场景来说)? runtime...

网友评论

    本文标题:atomic的实现机制和安全性

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