有谁知道任何全面的文档sun.misc.Unsafe
?
我正在寻找关于Unsafe.putOrderedInt()
. 这就是我所能找到的。
public native void putOrderedInt(Object o,
long offset,
int x)
Ordered/Lazy version of #putIntVolatile(Object, long, int)
有谁知道更好的来源?
mishadoff 的博客上有一篇关于它的好文章。
不过,该课程没有正式记录。
关于putOrdered方法..
您可以调用此方法来设置易失性字段而不使用易失性存储。如果您执行易失性存储,则基本上有一个存储内存屏障,可确保所有存储指令在屏障之前发生,在屏障之前发生并且该内存是可见的确保数据传播到缓存子系统。因此,当您拥有易失性存储时,您必须等待存储缓冲区耗尽。使用putOrdered线程执行将不会等待存储缓冲区耗尽,这可以提高性能。 . 但是,因此存储的值不会立即对其他线程可见..
如果您查看AtomicLong(或其他 Atomic 类),则有一个实际执行putOrderedLong的lazySet方法。这个方法的javadoc是:
最终设置为给定值。