美文网首页
多线程——atomic nonatomic的区别

多线程——atomic nonatomic的区别

作者: 王蓝胖 | 来源:发表于2016-02-25 15:38 被阅读194次
    • atomic,默认属性,编译器会在property上自动添加原子锁
      nonatomic,不考虑多线程情况时使用,提高效率

    • atomic本质上就是给get/set方法加锁,即原子锁,以避免线程A还没执行完setter,线程B又开始执行的,导致读取数据错误的问题。

    • atomic一定是线程安全的么?
      不一定,首先atomic的释义是原子性,并不是线程安全。原子性这个概念表示一个操作序列就像一个操作一样不被打断,而不像一个操作序列一样中间容许被打断。所以nonatomic一定是线程不安全的,但是atomic却不一定是线程安全的。

    • 假设线程A执行在对某属性get之前线程B release了该属性,会导致程序崩溃。

    相关文章

      网友评论

          本文标题:多线程——atomic nonatomic的区别

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