it-swarm.com.de

Wo ist Sun.misc.Unsafe dokumentiert?

Kennt jemand eine umfassende Dokumentation für Sun.misc.Unsafe?

Ich suche Dokumentation zu Unsafe.putOrderedInt(). Dies war alles, was ich finden konnte.

public native  void putOrderedInt(Object o,
    long offset,
    int x)

     Ordered/Lazy version of #putIntVolatile(Object, long, int) 

Kennt jemand eine bessere Quelle?

62
JAM

Es gibt einen schönen Beitrag darüber auf Mishadoffs Blog hier .

Die Klasse ist jedoch offiziell undokumentiert.

54
mwerschy

In Bezug auf die putOrdered Methoden ..

Sie können diese Methode aufrufen, um das flüchtige Feld ohne Verwendung eines flüchtigen Speichers festzulegen. Wenn Sie einen flüchtigen Speicher ausführen, verfügen Sie im Grunde über eine Speicherbarriere, die sicherstellt, dass alle Speicheranweisungen vor der Barriere vor der Barriere erfolgen und dieser Speicher für sichtbar ist Sicherstellen, dass die Daten an das Cache-Subsystem weitergegeben werden. Wenn Sie also über einen flüchtigen Speicher verfügen, müssen Sie warten, bis der Speicherpuffer leer ist. Mit putOrdered wartet die Ausführung des Threads nicht, bis der Speicherpuffer leer ist Drain und dies kann die Leistung verbessern. Infolgedessen wird der gespeicherte Wert jedoch nicht sofort für andere Threads sichtbar.

Wenn Sie sich AtomicLong (oder andere Atomic-Klassen) ansehen, gibt es eine lazySet -Methode, die tatsächlich putOrderedLong ausführt. Das Javadoc für diese Methode ist:

Wird schließlich auf den angegebenen Wert gesetzt.

8
Ivan Senic