这句话是描述 Objective-C 的 atomic 的。文章链接 http://blog.csdn.net/mars2639/article/details/7352540
1
zapper 2015-12-04 11:12:52 +08:00 1
nonatomic: It is not thread-safe. You can use the nonatomic property attribute to specify that synthesized accessors simply set or return a value directly, with no guarantees about what happens if that same value is accessed simultaneously from different threads. For this reason, it ’ s faster to access a nonatomic property than an atomic one.
atomic : It is the default behaviour. If an object is declared as atomic then it becomes thread-safe. Thread-safe means, at a time only one thread of a particular instance of that class can have the control over that object. 这句话是描述 nonatomic 的吧..? |
2
UtopiaCHN OP @zapper 是的,我写错了。“ You can use the nonatomic property attribute to specify that synthesized accessors simply set or return a value directly ” 这句话不是很理解啊
|
4
zapper 2015-12-08 11:53:42 +08:00 1
个人觉得应该从"nonatomic: It is not thread-safe"理解这两个的区别。
http://stackoverflow.com/questions/588866/whats-the-difference-between-the-atomic-and-nonatomic-attributes 第二个回答中的代码片段看上去会比较好理解 atomic 是通过原子操作 set / return value 的,你在执行 getter / setter 之前会检查这个对象是否被其他线程占用。如果是,则会等待,既不能一次得到这个值。 nonatomic 直接 set / return value ,既是说如果声明为 nonatomic ,你在执行 getter / setter 消耗的时间中,你那个对象中的值可能已经变化掉了。虽然说他的速度会比 atomic 快,但是不是线程安全的。 |