atomic和nonatomic都是修饰属性的关键字,atomic表示这个属性具有原子性,nonatomic反之,原子性的意思就是使用了atomic修饰的属性,系统在生成它的get/set方法的时候(这两个都有吗?)会对对象加锁,即一个线程在设置该对象的属性的时候,另一个对象是无法对这个属性做修改的,保证了线程安全。
但是atomic并不是绝对的线程安全,当有两个线程A和B的时候,当a在线程安全的set方法里设置完值以后,线程b立马对改属性赋值,那么a执行get以后取到的并不是刚才自己设置的值,所以,atomic只是提高了线程安全的安全性,但并不是100%的线程安全。