シンプルタイトルの状態です。基本的には、この例では、我々はこれまで、無効な状態を得ることができる:myBoolは、いくつかの無効な状態にあるため、SwoolでBoolアトミック操作を設定して読み取っていますか?
var myBool = false
// Thread 1
while true {
if randomEvent() {
myBool = true
}
}
// Thread 2
while true {
if myBool {
print("Was set to true")
} else {
print("Not set")
}
}
は、この今までにクラッシュしてもらえますか?それともこの「安全」ですか?
はい、問題ありません。私が証明しようとしていることは、スウィフトでブールができる不思議な第三の状態はないということです。私はそれが最終的に "本当に設定された"とそれが決してクラッシュすることはありません印刷することを確認しようとしています。 –
認めても、私はその答えを知らない。 Swiftはオープンソースなので、コードを解読しようと思っています。私は一般的に私の回答は、意図的に無制限のデータ共有をスレッド間で共有しようとしている場合、すべてのベットがオフであるということです。このようなコーナーを調べるよりも、「Do not Do That」ルールに従うだけの方が簡単ですか? – matt