@H_
404_0@
Obj-C 2.0中的
属性文档说明,原子
属性在内部使用一个锁,但是它不记录锁的细节.有没有人知道这是一个每个
属性的锁,每个对象的锁与@synchronized(self)所使用的隐含的锁相分离,或者相当于@synchronized(self)?
原子@properties使用的锁是一个实现细节 – 对于适当的平台上的适当类型,没有锁的原子操作是可能的,如果苹果没有利用它,我会感到惊讶.在任何情况下都无法访问该锁,因此您不能在同一个锁上同步.几位苹果工程师指出,原子性质不能保证线程安全;原子
属性只保证该值的
获取/集合是原子的.为了正确的线程安全性,您将不得不使用更高级别的锁定或同步,并且您几乎肯定不想使用与合成的getter / setter(s)可能使用的锁相同的锁.