gpt4 book ai didi

java - volatile 关键字有什么用?

转载 作者:太空宇宙 更新时间:2023-11-04 09:23:14 25 4
gpt4 key购买 nike

今天在工作中,我遇到了 Java 中的 volatile 关键字。由于不太熟悉,我发现了this explanation .

鉴于该文章详细解释了相关关键字,您是否曾经使用过它,或者您是否见过可以正确使用该关键字的情况?

最佳答案

volatile 具有内存可见性的语义。基本上,在写操作完成后, volatile 字段的值对所有读取器(特别是其他线程)都可见。如果没有 volatile ,读者可能会看到一些未更新的值。

回答你的问题:是的,我使用 volatile 变量来控制某些代码是否继续循环。该循环测试 volatile 值,如果为true则继续。可以通过调用“stop”方法将条件设置为false。循环检测到 false 并在 stop 方法完成执行后测试值时终止。

我强烈推荐的书“Java Concurrency in Practice”对 volatile 给出了很好的解释。这本书的作者是问题中引用的 IBM 文章的同一个人(事实上,他在那篇文章的底部引用了他的书)。我对 volatile 的使用被他的文章称为“模式 1 状态标志”。

如果您想了解更多关于如何 volatile在幕后工作,请阅读 the Java memory model 。如果你想超越这个水平,请查看一本好的计算机架构书籍,例如 Hennessy & Patterson并了解缓存一致性和缓存一致性。

关于java - volatile 关键字有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58054940/

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