gpt4 book ai didi

java - java中的障碍

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:47:30 25 4
gpt4 key购买 nike

如同在 c++ 中访问 std::atomics 时,我可以使用 memory_order_acquirememory_order_releasestd 来部分削弱顺序保证: :atomics::load()std::atomics::store()。或者使用 std::memory_order_relaxed

我的问题是:这在 java 中可行吗?我的意思是 java 中有任何屏障概念吗?


如果我想错了,请纠正我。

最佳答案

Java concurrent package应具有您需要的所有工具,包括 CyclicBarrier 和 Phaser(可重复使用的屏障)。

Java 中的正确内存顺序在任何对 volatile 变量的调用中得到保证,关于之前发生的任何事情。由于这些障碍在内部使用 volatile 变量,因此在每次 barrier.await() 调用后,内存顺序也得到保证。

对于更细粒度的订单,您需要使用自己的 volatile 变量,但考虑到标准编码(阅读:不是重新发明轮子,而是使用 Java 库),几乎没有理由真正这样做这个。

关于java - java中的障碍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20109363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com