2013-05-29 38 views
51

sun.misc.Unsafeへの包括的なドキュメントを知っている人はいますか?sun.misc.Unsafeはどこに文書化されていますか?

Thisは、私が見つけることができたすべてです。誰かが良い情報源を知っていますか? http://mishadoff.github.io/blog/java-magic-part-4-sun-dot-misc-dot-unsafe/

ここでしかmishadoffのブログにそれについての素晴らしい記事があり

enter image description here

+5

私の理解では、彼らは**特別**サポートされていない/文書化されていないということです。これらのAPIを使用することは想定されていません。それに固執することに同意した公開されたAPIや、保証されるセマンティクスは存在しません。このように、唯一のドキュメントが非公式であることは驚くことではありません。自己責任で使用してください。 –

+2

メモ:Java 9で削除されるはずです - http://blog.dripstat.com/removal-of-sun-misc-unsafe-a-disaster-in-the-making – Eyal

+0

これはむしろ炎症性のブログ投稿です。意外なことに、ポストが恐怖心を抱いている「絶対的な破局」は対処されている。 [現在の提案](http://openjdk.java.net/jeps/260)は 'sun.misc.Unsafe'と' sun.misc.Signal'のようないくつかのクラスをデフォルトで利用可能にします。 – dimo414

答えて

47

見つけることputOrderedIntのJavadocを探しています。クラスは公式には文書化されていません。 putOrdered方法について

+10

クラスのソースコードには、かなり多くの文書が添付されています。http://www.docjar.com/html/api/sun/misc/Unsafe.java.html –

+2

@raphwこれはOpenJDK向けですが、 devsはOracleよりもオープンでなければなりません。リンクをありがとう、それは非常に便利です。 – jlr

+2

他のJDKは内部クラスであるため、 'sun.misc.Unsafe'を提供しないかもしれません。しかし、そのクラスを提供するJDKは、通常、同じ実装を選択します。 Androidでも同じ「公開」APIを持つものがあります。 –

6

..

あなたは揮発性ストアを実行すると、あなたは基本的にことを保証ストアメモリバリアを持っている..揮発性ストアを使用せずに揮発性のフィールドを設定するには、このメソッドを呼び出すことができますすべてのストア命令はバリアの前に起こり、バリアの前に起こり、そのメモリはデータがキャッシュサブシステムに伝播することを保証することで見えます。したがって、揮発性ストアがあるときは、ストアバッファが消耗するのを待たなければなりません.. putOrderedスレッドを実行すると、ストアバッファが空になるのを待たずに、パフォーマンスを向上させることができます。しかし、結果として格納された値はすぐに他のスレッドには見えませんあなたはAtomicLong(または他の原子のクラス)の表情を持っている場合はLY ...

は、実際にputOrderedLongを実行lazySet方法があります。このメソッドのjavadocは次のとおりです。

最終的には、指定された値に設定されます。 `日*`クラスの

関連する問題