美文网首页
iOS atomic & nonatomic的区别

iOS atomic & nonatomic的区别

作者: 自律_自强_通达 | 来源:发表于2020-11-04 19:43 被阅读0次

iOS atomic & nonatomic的区别

前言

atomic 和 nonatomic 用来决定编译器生成的setter和getter是否原原子操作

atomic:

  • 为默认修饰符
  • 读写安全,其他操作不安全 : 在该属性在调用getter和setter方法时,会加上自旋锁(osspinlock)
  • 有一定性能开销

当某个属性用atomic修饰时, setter函数实现如下:

{lock}
if (property != newValue) {
    [property release];
    property  = [newValue retain];
}
{unlock}

nonatomic:

  • 读写操作和其他操作都不安全
  • 相对atomic性能消耗较少

相关文章

网友评论

      本文标题:iOS atomic & nonatomic的区别

      本文链接:https://www.haomeiwen.com/subject/sjfnvktx.html