0%

Atomic也不安全

property属性加上atomic属性后,可以一定程度地保障多线程安全。

不安全的定义:多线程访问时出现意料之外的结果。

atomic的作用:给getter、setter加了锁,保障了进入这两个方法时是安全的。但一旦离开这两个方法,atomic就没法保障线程安全了。

加了atomic也不安全的表现:

  • 只是getter和setter是原子操作,但使用属性进行操作的时候,这个语句不是原子的。
  • 如果属性是指针(如类实例),对内存地址的访问,即对对象的操作,不是线程安全的。

要做到线程安全,首先要明确需要怎样粒度的线程安全,即要确定哪些代码是要线程安全的,然后对其进行同步访问,具体可以使用锁和同步队列。

参考

欢迎关注我的其它发布渠道