-
atomic,默认属性,编译器会在property上自动添加原子锁
nonatomic,不考虑多线程情况时使用,提高效率 -
atomic本质上就是给get/set方法加锁,即原子锁,以避免线程A还没执行完setter,线程B又开始执行的,导致读取数据错误的问题。
-
atomic一定是线程安全的么?
不一定,首先atomic的释义是原子性,并不是线程安全。原子性这个概念表示一个操作序列就像一个操作一样不被打断,而不像一个操作序列一样中间容许被打断。所以nonatomic一定是线程不安全的,但是atomic却不一定是线程安全的。 -
假设线程A执行在对某属性get之前线程B release了该属性,会导致程序崩溃。
网友评论