Auf Thema antworten

Java 7 kann diese Optimierungen soweit ich weiß vornehmen. Unter Java 6 bin ich mir nicht sicher ob der Fall da schon abgedeckt wird. Dazu kommt noch das die CPU sich an der Ausführungsreihenfolge auch noch austobt. Die Reihenfolge kann sich sogar während die JVM läuft ändern.


Im Endeffekt hat man nur eine der folgenden Möglichkeiten:

1. auf Double-Checked Locking verzichten und sich auf die lazy Initialisierung der Klassen verlassen

2. das Instanz-Feld volatile deklarieren

3. die Instanz in eine AtomicReference kapseln


Die erste Möglichkeit ist allen anderen überlegen da sie ja keine Überprüfung machen muß ob die Instanz schon erzeugt wurde, die Instanz wird aber trotzdem erst erzeugt wenn man sie das erste mal benötigt.



Oben