¿Es seguro el bloqueo de doble control?
En ingeniería de software, el bloqueo con doble comprobación (también conocido como "optimización del bloqueo con doble comprobación") es un patrón de diseño de software que se utiliza para reducir la sobrecarga de adquirir un bloqueo comprobando el criterio de bloqueo (la "pista de bloqueo") antes de adquirir el bloqueo. El bloqueo sólo se produce si la comprobación del criterio de bloqueo indica que es necesario el bloqueo.

El patrón, cuando se implementa en algunas combinaciones de lenguaje/hardware, puede ser inseguro. A veces, puede considerarse un antipatrón.

Se suele utilizar para reducir la sobrecarga de bloqueo al implementar la "inicialización perezosa" en un entorno multihilo, especialmente como parte del patrón Singleton. La inicialización perezosa evita inicializar un valor hasta la primera vez que se accede a él.
El bloqueo de doble comprobación puede ser inseguro en algunas situaciones y a veces se considera un antipatrón. Sin embargo, puede implementarse de forma segura.