如果面试官上来直接问volatile,那么应该先从内存模型开始讲,然后谈原子性、可见性、有序性的理解,最后再讲volatile关键字的原理

volatile关键字是用来解决可见性和有序性

volatile用途:(1)保证内存可见性 (2)禁止指令重排

volatile会在线程1执行data++之后将值设置会工作内存并写到主内存中的同时,将其他线程的工作缓存中data的值设置为失效。当线程在执行下次操作的时候,发现工作内存中的值失效了,回去主内存中再次读取

【评论区】

1、可见性是指,下次使用的时候值可见。可见性并不能保证原子性

【面试题】能从底层角度聊聊volatile关键字的原理吗?相关推荐

  1. 就是要你懂 Java 中 volatile 关键字实现原理

    前言 我们知道volatile关键字的作用是保证变量在多线程之间的可见性,它是java.util.concurrent包的核心,没有volatile就没有这么多的并发类给我们使用. 本文详细解读一下v ...

  2. Java中volatile关键字实现原理

    原文地址http://www.cnblogs.com/xrq730/p/7048693.html,转载请注明出处,谢谢 前言 我们知道volatile关键字的作用是保证变量在多线程之间的可见性,它是j ...

  3. setnx是原子操作吗_谈谈Volatile关键字?为什么不能保证原子性?用什么可以替代?为什么?...

    大家好,欢迎关注我的公众号码猿bug,需要资料的话可以加我微信好友. 再谈volatile关键字之前,首先必须聊聊JMM内存模型! JMM主要的特性:可见性.原子性,顺序性 Java 虚拟机规范试图定 ...

  4. 理解volatile关键字

    一. volatile的作用 1. 可见性 cpu 在变量赋值之后加上写屏障,使得对 volatile变量 以及之前变量的写都写入到主内存中 cpu 在变量读取之前加上读屏障,使得对 volatile ...

  5. 【腾讯阿里最全面试题】介绍下Synchronized、Volatile、CAS、AQS,以及各自的使用场景

    [腾讯阿里最全面试题]介绍下Synchronized.Volatile.CAS.AQS,以及各自的使用场景(文章较长,建议收藏观看) 相关视频讲解: 面试中出现概念最高的技术-原来就是这个锁 后台开发 ...

  6. 从架构演进的角度聊聊Spring Cloud都做了些什么?

    Spring Cloud作为一套微服务治理的框架,几乎考虑到了微服务治理的方方面面,之前也写过一些关于Spring Cloud文章,主要偏重各组件的使用,本次分享主要解答这两个问题:Spring Cl ...

  7. HashMap底层实现原理,红黑树,B+树,B树的结构原理,volatile关键字,CAS(比较与交换)实现原理

    HashMap底层实现原理,红黑树,B+树,B树的结构原理,volatile关键字,CAS(比较与交换)实现原理 首先HashMap是Map的一个实现类,而Map存储形式是键值对(key,value) ...

  8. java底层原理书籍_阿里面试题:Java中this和super关键字的底层实现原理

    知道的越多,不知道的就越多,业余的像一棵小草! 编辑:业余草 来源:https://www.xttblog.com/?p=5028 B 站:业余草 最近一个粉丝加我说,接到了阿里的面试,问问我阿里会面 ...

  9. JVM系列之:从汇编角度分析Volatile

    文章目录 简介 重排序 写的内存屏障 非lock和LazySet 读的性能 总结 简介 Volatile关键字对熟悉java多线程的朋友来说,应该很熟悉了.Volatile是JMM(Java Memo ...

  10. 并发底层原理:线程、资源共享、volatile 关键字

    并发底层原理:线程.资源共享.volatile 关键字 1.线程 1.1 定义任务 1.2 Thread 类 1.3 使用 Executor 1.4 从任务中产生返回值 1.6 优先级 1.7 后台线 ...

最新文章

  1. windows常用命令有哪些(整理)
  2. mac 从终端打开应用程序
  3. 07/11/20 资料整理
  4. 多少秒算长镜头_自从搞烘焙后,遇到烘焙模具换算,秒变数学渣...
  5. java 控制台五子棋_java控制台五子棋
  6. SQL 的 left join 和 right join
  7. windowsf进程管理器中进程解释
  8. openstack创建的实例不能使用ssh登录
  9. 基于 C#遥感图像处理方法(代码实现)
  10. python 例子 银行_Python3 适合初学者学习的银行账户登录系统实例
  11. 文件上传(FileUpload)
  12. 电脑计算机安全模式在哪,电脑怎么进入安全模式? 进入安全模式详细教程
  13. fop生成pdf的中文乱码问题
  14. 详解TCP的四报文挥手
  15. 王道考研计算机网络学习心得——第一章-计算机网络体系结构
  16. 项链分赃问题与Borsuk-Ulam定理
  17. 特征选择时 的 特征子集选择和特征评价
  18. AS400 - DB2 for i的加密、解密
  19. python爬取pubmed的文献_使用python來調用pubmed API快速整理文獻
  20. 青岛大学计算机创新实验班,【2018年综合评价】电子信息工程创新实验班

热门文章

  1. JT/T 808-2019、JT/T 809-2019文档分享
  2. kali linux 入侵教程,kali linux 入侵wordpress wpscan工具使用方法
  3. python中pow函数用法_Python pow()用法及代码示例
  4. 使用Foxmail管理hotmail邮箱时,只能接收邮件而无法发送邮件的就解决办法
  5. 怎样调整计算机显示屏窗口,电脑显示器怎么调节参数
  6. android安装包解析错误
  7. 第九课堂:人人都可以当老师
  8. 技术族谱:预告片的制作思路
  9. JavaEE程序猿的Java世界观⑤
  10. 通过SQL语句数据库简繁体转换