有时我们有一个简单的 readOnly 属性,它的值可能会改变
@property (readonly) NSFetchedResultsController * FetchController;
@property (readonly) NSFetchRequest * FetchRequest;
@property (readonly) NSPredicate * KeywordPredicate;
我想当值改变时,它是通过某种简单的指针操作在眨眼之间完成的。就像是
_FetchRequest = newFetchRequest;
实际的变化过程可能会发生很大变化,但实际变化应该在这一行上。
问题是,这样简单的指针赋值总是原子的吗?如果这一行实际上由几行机器代码组成,并且有人要求这些机器代码之间的属性怎么办?
最后的问题是指针上的简单赋值运算符是否总是原子的。
如果是这样,什么时候它是原子的,什么不是?简单的赋值运算符对于复杂的对象当然不是原子的。
那么这些简单的单行赋值运算符在多大程度上是原子的呢?对于指针和原始类型,会一直如此吗?