67

の包括的なドキュメントを知っている人はいますsun.misc.Unsafeか?

に関するドキュメントを探していますUnsafe.putOrderedInt()見つけたのはこれだけでした。

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

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

誰かがより良い情報源を知っていますか?

4

2 に答える 2

60

これについては、mishadoff のブログ (こちら) に素敵な記事があります。

ただし、クラスは公式には文書化されていません。

于 2013-05-29T16:30:18.083 に答える
9

putOrderedメソッドについて..

このメソッドを呼び出して、揮発性ストアを使用せずに volatile フィールドを設定できます。揮発性ストアを実行する場合、基本的にストア メモリ バリアがあり、バリアの前にあるすべてのストア命令がバリアの前に発生し、そのメモリがデータがキャッシュ サブシステムに確実に伝達されるようにします。したがって、揮発性ストアがある場合は、ストア バッファーが排出されるのを待つ必要があります。 . ただし、結果として、格納された値は他のスレッドにすぐには表示されません..

AtomicLong (または他の Atomic クラス) を見ると、実際に putOrderedLong を実行するlazySetメソッドがあります。このメソッドの javadoc は次のとおりです。

最終的に指定された値に設定されます。

于 2014-11-18T10:44:24.843 に答える