Безопасно ли назначение объекта в потоке?

Безопасен ли этот поток? В частности, может ли метод GetMyObject () вернуть значение null? Я понимаю, что два потока могут получить другой экземпляр MyObject , но меня это не волнует. Я просто хочу убедиться, что можно с уверенностью предположить, что GetMyObject () никогда не вернет null.

   class Foo {
        private static MyObject obj;
        public static MyObject GetMyObject() {
            MyObject o = obj;
            if(o == null) {
                o = new MyObject();
                obj = o;
            }
            return o;
        }
        public static void ClearMyObject() {
            obj = null;
        }
    }

    class MyObject {}
5
задан Bret 6 October 2011 в 17:13
поделиться