并发和多线程-说说面试长提平时少用的volatile

说到volatile,一些参加过面试的同学对此肯定不陌生。

它是面试官口中的常客,但是平时的编码却很少打照面(起码,我是这样的)。

最近的面试,我也经常会问到volatile相关的问题,比如volatile和sychronized的区别volatile的使用场景volatile的实现原理等等。

问这些问题其实主要还是考察多线程、锁等方便的知识储备。虽然volatile在我们日常编码使用不多,但是他的实现思想以及背后牵扯的一些概念还是值得我们学习和思考的。

举例

首先我们来看一个例子

public class VolatileExample extends Thread { private static boolean flag = false; public void run() { while (!flag) { } } public static void main(String[] args) throws Exception { new VolatileExample().start(); Thread.sleep(100); flag = true; } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zysgzx.html