Eşzamanlı programlamanın paylaşım-hiçbir şey prensibi altında çalışıyorum. Esasen, tüm işçi iş parçacıklarım, aralarında hiç paylaşılmayan ( hatta referans olarak bile olsa ) aynı durumun değişmez salt okunur kopyalarına sahiptir . Genel olarak, bu gerçekten iyi çalıştı.
Şimdi, birisi tüm iş parçacıklarının aynı anda eriştiği kilitsiz tekli önbellek ( örneğin, statik bir sözlük ) tanıttı . Başlangıçtan sonra sözlük hiçbir zaman değiştirilmediğinden kilit yoktur. Herhangi bir İş Parçacığı Güvenliği sorunu olmadı, ancak şimdi performans düşüşü var.
Soru şu ki ... kilit yok, çünkü bu singletonun tanıtımı neden bir performans isabeti yaratıyor? Bunu açıklayabilecek kapakların altında tam olarak neler oluyor?
Onaylamak için, bu yeni singleton'a erişmek tek değişikliktir ve bunu sadece önbellek çağrısını yorumlayarak güvenilir bir şekilde yeniden oluşturabilirim.