[Brief] iOS atomic内部实现
2020-01-14 本文已影响0人
zolobdz
首先我们要找到runtime源码
runtime源码地址
全局搜索atomic可以找到objc-accessors.mm
文件,一看名字就是取值相关作用的文件。如下图

第55行可以看到进行了一次判断,如果是 非
atomic
的情况直接返回。如果是
atomic
的情况,我们看到从PropertyLocks
中取出了一个自旋锁spinlock_t
.进行加锁操作。
首先我们要找到runtime源码
runtime源码地址
全局搜索atomic可以找到objc-accessors.mm
文件,一看名字就是取值相关作用的文件。如下图
atomic
的情况直接返回。atomic
的情况,我们看到从PropertyLocks
中取出了一个自旋锁spinlock_t
.进行加锁操作。