//得到该对象
        public static Singleton_DoubleCheckedLocking GetInstance()
        {
            //Double-Checked Locking implements a thread-safe singleton class
            //java中的写法是synchronized(Singleton.class){},同时配上volatile的成员
            //C# volatile修饰符通常用于由多个线程访问但不使用 lock 语句对访问进行序列化的字段
            if (uniqueInstance == null)
            {
                lock (locker)
                {
                    //延迟实例化
                    if (uniqueInstance == null)
                    {
                        uniqueInstance = new Singleton_DoubleCheckedLocking();
                    }
                }
            }

            return(uniqueInstance);
        }
Beispiel #2
0
        //得到该对象
        public static Singleton_DoubleCheckedLocking GetInstance()
        {
            //Double-Checked Locking implements a thread-safe singleton class
            //java中的写法是synchronized(Singleton.class){},同时配上volatile的成员
            //C# volatile修饰符通常用于由多个线程访问但不使用 lock 语句对访问进行序列化的字段
            if (uniqueInstance == null)
            {
                lock (locker)
                {
                    //延迟实例化
                    if (uniqueInstance == null)
                    {
                        uniqueInstance = new Singleton_DoubleCheckedLocking();
                    }
                }
            }

            return uniqueInstance;
        }