我正在将一个小的 C++ 片段翻译成 java,我对内存排序/栅栏不是 100% 有信心。这个对吗:
C++:
std::atomic<size_t> seq;
...
seq.store(1,std::memory_order_release);
...
seq.load(std::memory_order_acquire);
我认为它应该如何转换为 Java:
unsafe.putLong(addr,1);
unsafe.storeFence();
unsafe.getLong(addr);
unsafe.loadFence();
这是正确的路线吗?(是的,使用 unsafe 与仅使用 AtomicLong 是有原因的)