iOS atomic不能保证数据可靠

iOS atomic 保证了读和写的过程是可靠的,但并不能保证数据一定是可靠的

其实很简单的例子,如果定义属性 NSInteger i 是原子的,对i进行 i = i + 1; 操作就是不安全的。因为原子性只能保证读写安全,而该表达式需要三步操作:1.读取i的值存入寄存器;2.将i加1;3.修改i的值;如果在第1步完成的时候,i被其他线程修改了,那么表达式执行的结果就会与预期的不一样,也就是不安全的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容