.NET Memory Model: Happens-Before, Acquire/Release, volatile ve Güvenli Object Publication
.NET memory model'inde sıradan erişimler yeniden sıralanabilir; Volatile.Read acquire, Volatile.Write release, Interlocked ve lock ise sıra garantisi veren noktalardır. Release build'de volatile olmayan bir stop flag döngüsünün JIT yüzünden hiç durmadığını, bool bayrakla yazılmış double-checked locking'in ARM64'te 20 milyon çağrıda 36 kez null döndürdüğünü gösteriyor, referans kontrolünün neden doğru olduğunu spec'ten çıkarıyor ve Java, C++ ve Go ile karşılaştırıyoruz.
14 Kas 2026
·
11 dk
·
14