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); }
static void GetDoublecheckedChocolateBoiler() { DoubleCheckedChocolateBoiler.GetDoubleCheckedChocolateBoiler(); }
public static void Restart() { chocolateBoiler = null; }