MS bağlantısı:Bağlantı girişi görünür.
Değişken anahtar kelime, bir alanın aynı anda birden fazla iş parçacığının çalışmasıyla değiştirilebileceğini gösterir. Volatile olarak ilan edilen alanlar, derleyici optimizasyonu ile sınırlandırılmaz (tek bir iş parçacığı tarafından erişildiği varsayıldığı sürece). Bu, alanın her zaman en güncel değerle render edilmesini sağlar.
Volatile modifikatör genellikle birden fazla iş parçacığı tarafından erişilen ancak erişimi bir kilit ifadesi kullanarak serileştirmeyen alanlar için kullanılır.
Uçucu anahtar kelimeler aşağıdaki alanlar türlerine uygulanabilir:
- Alıntı türü.
- İşaret tipi (güvensiz bir bağlamda). İşaretçinin kendisi değiştirilebilir olsa da, işaret ettiği nesne değiştirilebilir olamayabilir. Başka bir deyişle, "değişken nesneye işaretçi" ilan edilemez.
- Sbyte, byte, short, ushort, int, uint, char, float ve bool gibi türler.
- Aşağıdaki temel tiplerden birine sahip bir enum tipi: byte, sbyte, short, ushort, int veya uint.
- Referans tipi olarak bilinen genel tip parametreleri.
- IntPtr ve UIntPtr.
Değişken anahtar kelimeler yalnızca bir sınıf veya yapının alanlarına uygulanabilir.Yerel değişkenler volatile olarak ilan edilemez。
Artık saçmalık yok, test etmek için bir döngü yaz:
Bir döngüde 10.000 kez test edelim,bir değerin çıktısının doğru olduğunu buldu, ancakAçıklama yapmıyorUçucu iplik açısından güvenlidirÇünkü, defalarca test ederseniz, hesaplama hataları olur! Çünkü doğru sonuç şansı ve yanlış sonuç şansı vardır
Kod:
100.000 döngüyü tekrar test edelim ve a'nın değerinin yanlış olduğunu görebiliriz, çünkü döngü sayısı ne kadar az olursa, hata olasılığı da azalır ve hata o kadar belirgin değil, tıpkı az önce 10.000 döngüden sonra hata olmaması gibi.
Bu sırada, test etmek için bir kilit ekliyoruz ve a'nın değerinin beklediğimiz gibi doğru hesaplandığı görülüyor.
Kod:
Özet: uçucu iplik güvenliğini garanti etmez, yukarıdaki örnekte görebileceğiniz gibi.
|