tiistai 16. kesäkuuta 2009

Säieturvallinen singleton 2/2: C#


Singleton-mallin säieturvallisuudesta on syytä huolehtia niin C# kuin Java -ohjelmointikielissä. Javan osalta katso kirjoitusta Säieturvallinen singleton 1/2: Java.

C# -ohjelmointikielellä yksinkertainen ratkaisu on sama kuin Java:ssa, eli staattinen alustus. Perusteellinen kuvaus ratkaisuvaihtoehdoista löytyy linkistä

http://msdn.microsoft.com/en-us/library/ms998558.aspx

Myös linkistä

http://www.yoda.arachsys.com/csharp/singleton.html

löytyy asiaa käsittelevä kirjoitus.

Kirjassa CLR via C# Jeffrey Richter käsittelee singleton-ongelmaa ja antaa hyvän esityksen volalatile -määreen merkityksestä (jota esim. oheisen linkin msdn-linkin artikkelissa on käytetty) luvussa 24 Thread Synchronization osassa The Famous Double-Check Locking Technique.