小编典典

volatile 关键字有什么用?

all

今天在工作中,我偶然发现了volatileJava
中的关键字。不是很熟悉,我找到了这个解释

鉴于那篇文章解释了相关关键字的详细信息,您是否曾经使用过它,或者您是否曾经看到过可以以正确方式使用该关键字的案例?


阅读 115

收藏
2022-03-02

共1个答案

小编典典

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

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

我强烈推荐的《Java Concurrency in Practice》一书很好地解释了volatile.
这本书是由撰写问题中引用的 IBM 文章的同一个人撰写的(事实上,他在该文章的底部引用了他的书)。我使用的volatile是他的文章所说的“模式 1
状态标志”。

如果您想了解更多关于幕后volatile工作原理的信息,请阅读Java
内存模型
。如果您想超越该级别,请查看像Hennessy
& Patterson
这样的优秀计算机体系结构书籍,并阅读有关缓存一致性和缓存一致性的内容。

2022-03-02