Csharp/C Sharp/Development Class/Volatile
Access Reordering and Volatile:Use of volatile
<source lang="csharp"> using System; public class Singleton {
static object sync = new object(); static volatile Singleton singleton = null; private Singleton() { } public static Singleton GetSingleton() { if (singleton == null) { lock(sync) { if (singleton == null) singleton = new Singleton(); } } return(singleton); }
}
</source>