我的班级有一个属性:
@property (readwrite, atomic) BOOL IsTrue;
我对atomic
限定符的理解是@synthesize
属性的 d getter/setter 将保证来自不同线程的访问序列化,即如果生产者线程 A 正在set
处理属性值,它将被允许在消费者线程 B 和 C 之前完成设置操作允许get
属性值(顺便说一句,atomic
对于单字节/ POD 类型甚至是必需的?)。
volatile
关键字是否提供任何进一步的数据完整性?
@property (readwrite, atomic) volatile BOOL IsTrue;
我特别强调的是,消费者线程是否有可能在不使用的情况下获得过时的值volatile
?