在Swift中访问不同的成员线程是否安全?

时间:2016-04-28 04:15:38

标签: swift multithreading

我有一个班级

class Foo {
   var bar : Int
   var baz : Int
}

我有两个线程,它们都引用了这个类的同一个对象。但是,他们正在访问此类的不同成员

  • 线程1正在读取并写入条形码。
  • 线程2正在读写baz。

这个线程安全吗?

我的假设是,因为这两个成员是不同的对象。但是,我想仔细检查(考虑到我仍然有限的Swift知识)。

1 个答案:

答案 0 :(得分:1)

是的,如果一个线程与一个属性交互而另一个与另一个属性交互,并且您实际上没有任何与这两个属性交互的内容,那么您可能会没事。

不可否认,感觉就像一个低cohesion解决方案(这两个属性真的应该是同一个类的属性吗?)。此外,它似乎有点脆弱(取决于与此对象交互的其他对象遵守线程完整性的这种划分),但从技术上讲它可以工作。

如果你能给我们一个实际的,现实世界的例子来说明你打算如何使用它,我们或许可以提供更具体的建议。