Re[2]: nonblocking singleton
От: Alstresh Россия  
Дата: 27.10.11 10:45
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Здравствуйте, Alstresh, Вы писали:


A>>Покритикуйте использование не блокирющего алгоритма взамен синхронизации, например:

B>Два параллельных потока у вас создают 2 экземпляра.

Да, там перемудрил, а если так:


final class NonBlockSingleton {
    private static final AtomicReference<NonBlockSingleton> ref = new AtomicReference<NonBlockSingleton>();

    public static NonBlockSingleton getInstance() {
        if (ref.get() == null) {
            ref.compareAndSet(null, new NonBlockSingleton());
        }
        return ref.get();
    }
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.