ios 原子性理解

保证代码线程安全和属性的使用也相关。atomic属性标志指定无论多少个线程访问给定属性,其值的设置或者获取都会得到一个“完整”的值,而不是部分值。本质上,它确保@synchronized指令为你的属性所创建的存取器函数在赋值或者取值之前,会在生成的存取器函数中利用一个@synchronized(self)代码块。当你指定nonatomic时,就不会调用@synchronized(个人理解就是不加锁).

默认的是atomic(个人理解加锁),表明如果两个线程同时通过属性存取器函数访问某个特定的成员变量,那么该操作是线程安全的。但这并不能保证整个对象或者对这个对象的多个不同的存取器函数的不同调用时线程安全的。所以需要实现某种形式的对象范围的锁。

原文地址:https://www.cnblogs.com/xcy617/p/2873286.html