Le double contrôle du verrouillage est-il sûr ?
Is double checked locking safe?
Double checked locking can be unsafe in some situations and is sometimes considered an anti-pattern. However, it can be implemented in a safe way.
Le verrouillage à double vérification peut être dangereux dans certaines situations et est parfois considéré comme un anti-modèle. Cependant, il peut être mis en œuvre de manière sûre.
closed_qa
Dans le domaine du génie logiciel, le verrouillage à double vérification (également appelé "optimisation du verrouillage à double vérification") est un modèle de conception logicielle utilisé pour réduire le surcoût lié à l'acquisition d'un verrou en testant le critère de verrouillage (l'"indice de verrouillage") avant d'acquérir le verrou. Le verrouillage n'a lieu que si la vérification du critère de verrouillage indique que le verrouillage est nécessaire.

Ce modèle, lorsqu'il est mis en œuvre dans certaines combinaisons langage/matériel, peut être dangereux. Il peut parfois être considéré comme un anti-modèle.

Il est généralement utilisé pour réduire la charge de verrouillage lors de la mise en œuvre d'une "initialisation paresseuse" dans un environnement multithread, en particulier dans le cadre du modèle Singleton. L'initialisation paresseuse évite d'initialiser une valeur jusqu'à la première fois qu'on y accède.
fr