sun.misc.Unsafe记录在哪里?

时间:2013-05-29 16:24:42

标签: java

有谁知道sun.misc.Unsafe的全面文档?

This是我能找到的。有谁知道更好的来源?

寻找putOrderedInt的Javadoc只找到

enter image description here

2 个答案:

答案 0 :(得分:53)

在mishadoff的博客上有一篇很好的帖子:http://mishadoff.github.io/blog/java-magic-part-4-sun-dot-misc-dot-unsafe/。该课程正式无证。

答案 1 :(得分:7)

关于 putOrdered 方法..

您可以调用此方法来设置volatile字段而不使用volatile存储。如果执行volatile存储,您基本上有一个存储内存屏障,可确保所有存储指令在屏障之前,发生在屏障和内存之前通过确保数据传播到缓存子系统是可见的。所以当你有volatile存储时,你必须等待存储缓冲区耗尽..使用 putOrdered 线程执行不会等待存储缓冲区以排出,这可以提高性能。但是,因此存储的值不会立即对其他线程可见..

如果您查看 AtomicLong (或其他Atomic类),则会有一个实际执行putOrderedLong的 lazySet 方法。这个方法的javadoc是:

  

最终设置为给定值。