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

Java和C#中的可变语义背后的原因是什么

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

Java和C#中的可变语义背后的原因是什么

获取/释放语义的作用并不在于其他线程多久才能看到volatile字段本身的新写入的值,而在于易失性操作在不同线程之间建立事前联系的方式。如果线程A读取了一个volatile字段并在另一个线程B中看到了写入该字段的值,那么线程A也将保证在线程B执行该操作之前,线程A会看到线程B写入其他变量(不一定是volatile)的值。易失性写入。这看起来像是缓存刷新,但仅 从读取volatile的线程的角度来看,其他未触及volatile字段的线程对B没有排序保证,并且可能会看到一些较早的非易失性写入,但是如果编译器/ JIT则看不到其他很倾斜

监视器获取/发布的类似特征是它们引起的事前关联-监视器释放之前一个线程的动作可以保证在另一个线程随后获取同一监视器之后可见。Volatiles为您提供与监视器同步相同的顺序保证,但没有阻塞。

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

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

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