2
我有一個類在Swift中訪問不同的成員線程安全嗎?
class Foo {
var bar : Int
var baz : Int
}
我有兩個線程其中兩個具有與本類的相同對象的引用。然而,他們正在訪問此類別的不同成員
- 線程1正在讀取和寫入。
- 線程2讀取和寫入巴茲。
這是線程安全的?
我的假設,它是,因爲這兩個成員是不同的對象。但是,我想仔細檢查(考慮到我仍然有限的Swift知識)。
是的。它感覺很脆弱(改變一些代碼會很容易就會開始與其他成員進行交互)。 –
這也是一個可能的性能問題。我不太瞭解swift數據佈局,但如果這兩個變量最終在同一個緩存行中,那麼您的兩個線程將爭奪所有權(也稱爲虛假共享) – Bahbar