美文网首页
atomic非绝对线程安全

atomic非绝对线程安全

作者: Gavin008 | 来源:发表于2017-03-23 18:08 被阅读28次

nonatomic

非原子性,可以同时执行setter和getter

atomic

原子性,保证setter和getter的线程安,不能同时执行setter和getter。

atomic例子详解

线程A执行setter,线程B执行getter,若此时设置的是atomic,线程A没执行完sette,线程B的getter被锁住。只有等线程A执行完setter,才能执行线程B中的getter。

atomic不是绝对线程安全的

原因如下:

线程A执行setter,线程B执行setter,然后线程A执行getter,这时候取到的值已经被线程B更改过了。

例子:@property(atomic,strong) NSMutableArray *array;

初始化 array = [NSMutableArray new];

线程A: [array addObject:@"A"];

线程B: [array removeAllObjects];

线程A:array[0];//崩溃

相关文章

  • nonatomic和atomic的区别

    nonatomic:非线程安全 atomic:线程安全 atomic对属性的set 和get方法进行加锁,保证当前...

  • atomic非绝对线程安全

    nonatomic 非原子性,可以同时执行setter和getter atomic 原子性,保证setter和ge...

  • 问题:使用atomic一定是线程安全的吗?

    atomic不是绝对的线程安全。atomic的本意是指属性的存取方法是线程安全的,并不保证整个对象是线程安全的。 ...

  • atomic与线程安全

    本篇文章采用的源码是objc4-781版本 使用atomic一定是线程安全的吗? atomic不是绝对的线程安全。...

  • iOS 中atomic与nonatomic区别,以及atomic

    atomic 与 nonatomic 区别 nonatomic:非原子属性,线程不安全的,效率高atomic:原子...

  • iOS开发中用到的关键字总结

    1.原子(atomic)跟非原子(non-atomic)属性有什么区别? (1). atomic提供多线程安全。是...

  • 面试与问题记录 3

    一 .nonatomic 与atomic 区别,atomic是绝对线程安全吗 ?常用的锁有那些? 答: nonat...

  • 原子属性

    非原子属性nonatomic 和原子属性atomic 原子属性atomic:就是为了保证这个属性的安全性(线程安全...

  • atomic 和noatomic

    nonatomic:非原子的,非线程安全的,适合内存小的移动设备atomic:原子的,线程安全的 不写的话默认就是...

  • ios 原子性和非原子性

    原子性和非原子行相对于线程的安全来讲 nonatomic:非原子属性,线程不安全的,效率高 atomic:原子属性...

网友评论

      本文标题:atomic非绝对线程安全

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