文章目录
- iOS - 多线程-atomic
- 1. 源码分析
- 1.1 `get`方法
- 1.2 `set`方法
- 2. 一般不使用atomic的原因
iOS - 多线程-atomic
atomic
用于保证属性setter
、getter
的原子性操作,相当于在getter
和setter
内部加了线程同步的锁- 可以参考源码objc4的objc-accessors.mm
- 它并
不能保证
使用属性的过程是线程安全的
1. 源码分析
1.1 get
方法
1.2 set
方法
2. 一般不使用atomic的原因
get
、set
方法调用频率非常高,太耗性能- 多线程操作同一个对象场景可能不多,特殊场景实在需要如此的话,完全可以在
外面
访问属性时进行加锁解锁,而不是直接使用atomic
导致所有调用get
、set
方法都需要加锁、解锁
@oubijiexi