前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >围绕一个 volatile 关键字居然可以问出来 16 个问题

围绕一个 volatile 关键字居然可以问出来 16 个问题

作者头像
Java团长
发布2020-07-03 11:20:45
4530
发布2020-07-03 11:20:45
举报
文章被收录于专栏:微信公众号:Java团长

对于 Java 每次面试就会想到多线程,多线程问题基本跑不了要问一下 volalite 关键字,可是我万万没想到居然一个 volatile 关键字可以连续问题出来 16 个问题!看下你能回答出来几个?

  1. volatile 关键字是什么意思?
  2. 你了解到的什么地方使用了 volatile 关键字?解决了什么问题?
  3. volatile 和 JMM 有什么关系?
  4. 什么是指令重排?volatile 和指令重排有什么关系?
  5. 什么是内存屏障?volatile 和内存屏障有什么关系?
  6. 什么是 happens-before?volatile 和它有什么关系?
  7. 如果单 CPU 的服务器,是否使用 volatile 对程序有影响吗?
  8. 两条语句,第一条是普通写,第二条是 volatile 写,其他线程对第一条普通写可见吗?
  9. volatile int i;i++ 操作会有线程安全问题吗?
  10. volatile 能否替代 CAS?
  11. 为什么 AQS 里面的 state 使用了 CAS 还需要 volatile?
  12. Unsafe.putOrderedObject 是什么?能否替代 volatile?
  13. 可以认为 CAS + volatile = synchronized 吗?
  14. 解决可见性问题,使用了 synchronized 还需要 volatile 吗?
  15. 利用 volatile 手写一个懒汉式单例模式,并解释为什么这么写。
  16. 使用 volatile 手写一个生产者消费者程序吧。

看了这么多问题其实我们不难看出来一个道理,虽然围绕 volatile 有各种各样的问题变种,但是都离不开他的原理

1. volatile 究竟是什么?

2. volatile 解决了什么问题?

3. volatile 怎么解决这些问题的?

这三个问题如果你弄明白了,其实上面的问题都很好回答。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java团长 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档