ios面试题

ios的atomic一定是线程安全的吗?

2017-11-19  本文已影响0人  小山93

atomic修饰的属性一定是线程安全的吗?这个问题其实包括两个块内存,一个是栈区指针的内存A,一个是堆区对象占用的内存B。

atomic 只是对属性的 getter/setter 方法加自旋锁,也就是对A加锁,这样可以保证A是线程安全的。这样并没有对B做任何处理所以B不是线程安全的。

如果一个对象的改变不是直接调用 getter/setter 方法,而是直接对对象内部属性修改、字符串拼接、数组增加和移除元素等操作,就不能保证这个对象是线程安全的。

上一篇下一篇

猜你喜欢

热点阅读