« Wenn ihr mal nach Hause kommt und die Tochter weint :-( | Main| Huhn / Ei »

Racy-Single-Check-Idiom ist ein Variante des Double-Check-Idioms

0
Kategorie  

Habe gerade das neue Java-Magazin erhalten, da ich zuerst immer nur die Headlines der Artikel lese, um dann zu entscheiden, welche ich mir genauer anschaue, stolperte ich über obige Zeile.

Folgende Definition konnte ich in Wikipedia finden:
„Ein Idiom ist ein programmiersprachenspezifisches Muster und damit ein Muster auf einer niedrigen Abstraktionsebene. Ein Idiom beschreibt, wie man bestimmte Aspekte von Komponenten oder Beziehungen zwischen ihnen mit den Mitteln einer bestimmten Programmiersprache implementiert."

OK, dann kann ich also davon ausgehen, dass es das Racy-Single-Check-Idiom nur in Java gibt

Da die Autorin Angelika Langer im Web Ihre Erkenntnisse über diese Idiome zur Verfügung stellt, hier ein kleines Summary.

Es geht um lazy initializtion von Werten innerhalb eines Objekts, gestart wird mit folgendem Code ->
public class MyClass {
    private MyField lazyField;

    ...

    public synchronized MyField getMyField() {
        if (lazyField == null)

            lazyField = new MyField( ... );

        return lazyField;
    }

    ...
}


Thread sicher ist er nicht , deshalb wird der Code mittels Double-Check-Idiom, so aussehen ->


public class MyClass {
    private volatile MyField lazyField;

    ...

    public MyField getMyField() {
        if (lazyField == null) {  // Zeile 2

            synchronized (this) {

                if (lazyField == null) {

                    lazyField = new MyField( ... );

            }

         }

        return lazyField;         // Zeile 8
    }

    ...
}



Neben optimierten Double-Check-Idiomen werden auch noch die Single-Check-Idiome vorgestellt, bevor dann das Racy-Single-Check-Idiom mit folgendem Code diskutiert wird:
public class MyClass {
    private int lazyField;

    ...

    public int getMyField() {
        if (lazyField == 0)

            lazyField = 10000;

        return lazyField;
    }

    ...
}


Gruß JJR

Mach einen Kommentar

:-D:-o:-p:-x:-(:-):-\:angry::cool::cry::emb::grin::huh::laugh::lips::rolleyes:;-)

Amazon


Impressum

Firmenname: Peanuts-Soft
Straße Nummer: Biinger Strasse 8
PLZ Ort: 55263 Wackernheim
Telefon: +491772134526
E-Mail: joerg.reck @ peanuts-soft.de
Disclaimer: Peanuts-Soft übernimmt keine Garantie dafür, dass die auf dieser Website bereitgestellten Informationen vollständig, richtig und stets aktuell sind. Dies gilt auch für alle Links, auf die verwiesen wird. Peanuts-Soft ist für die Inhalte, auf die per Link verwiesen wird, nicht verantwortlich. Peanuts-Soft haftet nicht für konkrete, mittelbare und unmittelbare Schäden oder Schäden, die durch fehlende Nutzungsmöglichkeiten, Datenverluste oder entgangene Gewinne – sei es aufgrund der Nichteinhaltung vertraglicher Verpflichtungen, durch Fahrlässigkeit oder eine andere unerlaubte Handlung – im Zusammenhang mit der Nutzung von Dokumenten oder Informationen bzw. der Erbringung von Dienstleistungen entstehen, die auf dieser Web Site zugänglich sind.
Datenschutz: Inhalt und Gestaltung der Internetseiten sind urheberrechtlich geschützt. Eine Vervielfältigung der Seiten oder deren Inhalte bedarf der vorherigen schriftlichen Zustimmung von Peanuts-Soft.


Locations of visitors to this page

Powered By

Domino BlogSphere
Version 3.0.2