小组Java

上述代码是使用”synchronized双重锁机制”的单例模式,我一直有疑问为何要加volatile关键字?

目前得到的答案如同注释所写,是利用了volatile关键字的防止指令重排序功能,保证非原子操作的禁止重排序。

我的问题:

1.那么如何验证不加volatile抛出异常的场景(目前我的测试都是正常的!)?

2.synchronize不是也具有防止指令重排序的功能,加volatile关键字是不是多余?

1 收藏


直接登录