gpt4 book ai didi

java - 关于java volatile 数组

转载 作者:行者123 更新时间:2023-12-01 17:50:16 27 4
gpt4 key购买 nike

我有一个关于 volatile 数组的问题。在互联网上,大多数人说数组的元素不能保证是 volatile 的,只有它的引用是 volatile 的。所以我写了一些代码来检查它。结果证明,它有效。

我使用的是 Windows 10 + JDK 8

我的代码:

static volatile boolean[] keepRunnin g= { true };

public static void main(String[] args) throws Exception {

new Thread(
()->{
while (keepRunning[0]){}
}
).start();

Thread.sleep(1000);

keepRunning[0] = false;
}

循环总会结束,它不是无限循环。

谁能解释一下吗?

最佳答案

编写代码来证明数组中的元素总是对所有线程可见是不可能的。

您的示例可能会证明它在一定程度上适合您(我还没有运行它),但您不能确定它始终适用于所有硬件、所有用户。

只能编写反驳某些东西具有跨线程可见性的代码。不可能编写代码来证明这一点。

关于java - 关于java volatile 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50967448/

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