私は両方とも、このクラスの同じオブジェクトへの参照を有する2つのスレッドを持っているクラスSwiftで異なるメンバーのスレッドセーフにアクセスしていますか?
class Foo {
var bar : Int
var baz : Int
}
を有します。しかし、彼らはこのクラスの異なるメンバーにアクセスしています。
- スレッド1はバーに読み書きしています。
- スレッド2はbazに読み書きしています。
このスレッドは安全ですか?
これらの2つのメンバーが異なるオブジェクトなので、私の前提です。しかし、私は(私のまだ限られたSwift知識を考慮に入れて)二重チェックしたい。
はい。それは壊れやすいと感じます(他のメンバーとやりとりするコードを変更するのは簡単すぎます)。 –
これはパフォーマンスの問題でもあります。私は素早くデータレイアウトを知っていませんが、それらの2つのバールが同じキャッシュラインで終わると、あなたの2つのスレッドは所有権を競合します(間違った共有とも呼ばれます) – Bahbar