Пример #1
0
 public static DoubleCheckedChocolateBoiler GetDoubleCheckedChocolateBoiler()
 {
     if (chocolateBoiler == null)
     {
         lock (locker) {
             /*
              *  el metodo lock nos permite bloquear un objeto para que solo 1 usuario tenga acceso
              *  a el y los demas tendran que esperar su turno para poder tomar su instancia
              */
             if (chocolateBoiler == null)
             {
                 /*
                  * es importante revisar de nuevo la instanciacion de la clase ya que si 2 hilos
                  * trataran de obtener la clase el primero bloquearia la creacion y el segundo
                  * solo la consultaria
                  */
                 Console.WriteLine("Creando Double_checkedChocolateBoiler");
                 chocolateBoiler = new DoubleCheckedChocolateBoiler();
             }
             else
             {
                 Console.WriteLine("Double_checkedChocolateBoiler ya existe");
             }
         }
     }
     else
     {
         Console.WriteLine("Double_checkedChocolateBoiler ya existe");
     }
     return(chocolateBoiler);
 }
Пример #2
0
 static void GetDoublecheckedChocolateBoiler()
 {
     DoubleCheckedChocolateBoiler.GetDoubleCheckedChocolateBoiler();
 }
Пример #3
0
 public static void Restart()
 {
     chocolateBoiler = null;
 }