Nicht ordnungsgemäße Schreibvorgänge für doppelt geprüftes Sperren

In den Beispielen für Out-of-Order-Schreibvorgänge für doppelt überprüfte Sperrszenarien (siehe:IBM Artikel & Wikipedia-Artikel)

Ich konnte den einfachen Grund nicht verstehen, warum Thread1 aus dem synchronisierten Block herauskommen würde, bevor der Konstruktor vollständig initialisiert ist. Nach meinem Verständnis sollten das Erstellen von "new" und der aufrufende Konstruktor nacheinander ausgeführt werden, und die synchronisierte Sperre sollte erst freigegeben werden, wenn die gesamte Arbeit nicht abgeschlossen ist.

Bitte lassen Sie mich wissen, was ich hier vermisse.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage