美文网首页
Atomic 和 Non-Atomic的区与别

Atomic 和 Non-Atomic的区与别

作者: Leon_Jiang | 来源:发表于2018-05-20 15:05 被阅读0次

    一 Atomic: 是默认的
    1 会保证 CPU 能在别的线程来访问这个属性之前,先执行完当前流程
    2 速度不快,因为要保证操作整体完成
    二 Non-Atomic:不是默认的
    1 更快
    2 线程不安全
    3 如有两个线程访问同一个属性,会出现无法预料的结果

    三 详细区别:(假如有个属性 name)
    1 属性 name 仅仅是(读/写)安全的!
    1)假如在执行[self name]方法的时候执行[self setName:@"A"];那么就会线程等待,等[self name]执行完后再执行[self setName:@"A"]。(其实就是串行执行)
    2)假如在执行[self name]的时候执行[name release];那么就会造成crash!因为他只保证读写安全!(在这里[self name]与[name release]并发执行)
    2 nonatomic 很简单就是 并发执行 ,所以不保证安全!

    相关文章

      网友评论

          本文标题:Atomic 和 Non-Atomic的区与别

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