gpt4 book ai didi

java - 解释 "volatile"在java中的用法?

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

我正在学习 Java 中的“volatile”关键字。但我不知道如何适本地使用它。我在 JDK 中发现了一些用法。你能给我解释一下为什么要使用 volatile 吗?

1) HashMap 类:transient volatile int modCount;?

我认为这是因为可见性,一旦 map 被其他线程更改,其他线程就可以看到更改。对吧?

2)ConcurrentHashMap中的内部静态类HashEntry:

final K key;
final int hash;
volatile V value;

为什么使用 volatile 的值?

3) 类 AtomicInteger : private volatile int value;?

4) 类ThreadPoolExecutor:

private volatile long  keepAliveTime;
private volatile int corePoolSize;
private volatile int maximumPoolSize;

都是因为能见度吗?还是其他一些更深层次的原因?

最佳答案

当你想让一些东西可以被多个线程修改时,可以使用 Volatile。它将变量标记为对任何线程都不可本地缓存。所有线程的所有读取和写入都来自内存。

关于java - 解释 "volatile"在java中的用法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26202956/

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