栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

volatile如何实际起作用?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

volatile如何实际起作用?

据我了解,它总是看起来好像写后缓存已被刷新,并且总是看起来好像是在读取时直接从内存中进行读取。这样做的结果是,一个线程将始终看到另一个线程的写入结果,并且(根据Java内存模型)永远不会看到缓存的值。但是,实际实现和CPU指令会因一种体系结构而异。

如果您在一个以上的线程中递增变量,或检查其值并采取某些措施,则不能保证正确性,因为显然没有实际的同步。通常,只有仅线程正在写入变量,而其他线程都正在读取时,才可以保证正确执行。

另请注意,可以将64位NON-
volatile变量作为两个32位变量进行读取/写入,因此32位变量在写入时是原子的,而64位变量则不是。可以先写入一半,然后读取的值可以是旧值或新值。

这是我书签中非常有用的页面:

http://www.cs.umd.edu/~pugh/java/memoryModel/



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/497753.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号