double contrôle de verrouillage en motif singleton

il peut être question de base

avoir un singleton en environnement multithread, nous pouvons utiliser un verrou. Veuillez consulter l'extrait de code. Mais pourquoi avons-nous besoin d'un double contrôle de verrouillage dans le pattern singleton? Et de plus ce n'est vérifié blocage des moyens?

class singleton
{
    private static singleton instance = null;
    private static singleton() { }

    private static object objectlock = new object();

    public static singleton Instance
    {
        get
        {

            lock (objectlock) //single - check lock
            {
                if (instance == null)
                {
                    instance = new singleton();
                }

                return instance;
            }
        }

    }
}

source d'informationauteur Raghav55 | 2011-05-10