Comment l'initialisation d'une référence d'objet à partir d'un initialiseur statique garantit-elle une publication sûre?Initialisateurs statiques et publication sécurisée
1
A
Répondre
3
L'utilisation d'un initialiseur statique est souvent le moyen le plus facile et plus sûr de publier des objets qui peuvent être construits de manière statique:
public static Holder holder = new Holder(42);
initialiseurs statiques sont exécutées par la machine virtuelle Java au moment de l'initialisation de la classe; En raison de la synchronisation interne dans la JVM, ce mécanisme garantit la publication en toute sécurité des objets ainsi initialisés [JLS 12.4.2].
La charge de classe est implicitement synchronisée. –
En fait ... c'est l'initialisation de classe qui est synchronisée. Cela peut arriver «en même temps» que le chargement d'une classe, ou cela peut arriver paresseusement. –