面试中volatile关键字如何影响程序?其工作原理是怎样的?

2026-05-06 03:451阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1141个文字,预计阅读时间需要5分钟。

面试中volatile关键字如何影响程序?其工作原理是怎样的?

一位工作了6年的Java程序员,在阿里二面时,被问到volatile关键字。然后,就没有然后了。同样,另外一位去美团团面4年的小伙子,也被问到volatile关键字。然后,也没有然后了。

一个工作了6年的Java程序员,在阿里二面,被问到“volatile”关键字。

然后,就没有然后了…

同样,另外一个去美团面试的工作4年的小伙伴,也被“volatile关键字“。

面试中volatile关键字如何影响程序?其工作原理是怎样的?

然后,也没有然后了…

这个问题说实话,是有点偏底层,但也的确是并发编程里面比较重要的一个关键字。

下面,我们来看看普通人和高手对于这个问题的回答吧。

普通人:

嗯… volatile可以保证可见性。

高手:

volatile关键字有两个作用。

  1. 可以保证在多线程环境下共享变量的可见性。
  2. 通过增加内存屏障防止多个指令之间的重排序。

我理解的可见性,是指当某一个线程对共享变量的修改,其他线程可以立刻看到修改之后的值。

其实这个可见性问题,我认为本质上是由几个方面造成的。

  1. CPU层面的高速缓存,在CPU里面设计了三级缓存去解决CPU运算效率和内存IO效率问题,但是带来的就是缓存的一致性问题,而在多线程并行执行的情况下,缓存一致性就会导致可见性问题。

阅读全文

本文共计1141个文字,预计阅读时间需要5分钟。

面试中volatile关键字如何影响程序?其工作原理是怎样的?

一位工作了6年的Java程序员,在阿里二面时,被问到volatile关键字。然后,就没有然后了。同样,另外一位去美团团面4年的小伙子,也被问到volatile关键字。然后,也没有然后了。

一个工作了6年的Java程序员,在阿里二面,被问到“volatile”关键字。

然后,就没有然后了…

同样,另外一个去美团面试的工作4年的小伙伴,也被“volatile关键字“。

面试中volatile关键字如何影响程序?其工作原理是怎样的?

然后,也没有然后了…

这个问题说实话,是有点偏底层,但也的确是并发编程里面比较重要的一个关键字。

下面,我们来看看普通人和高手对于这个问题的回答吧。

普通人:

嗯… volatile可以保证可见性。

高手:

volatile关键字有两个作用。

  1. 可以保证在多线程环境下共享变量的可见性。
  2. 通过增加内存屏障防止多个指令之间的重排序。

我理解的可见性,是指当某一个线程对共享变量的修改,其他线程可以立刻看到修改之后的值。

其实这个可见性问题,我认为本质上是由几个方面造成的。

  1. CPU层面的高速缓存,在CPU里面设计了三级缓存去解决CPU运算效率和内存IO效率问题,但是带来的就是缓存的一致性问题,而在多线程并行执行的情况下,缓存一致性就会导致可见性问题。

阅读全文