это может быть основной вопрос
чтобы иметь singleton в многопоточной среде, мы можем использовать блокировку. См. Фрагмент кода. Но почему нам нужна двойная проверка блокировки в одноэлементном шаблоне? И еще, что означает блокировка с двойной проверкой?
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;
}
}
}
}