double-check单例 为啥要加volatile
来源:13-12 JMM的应用

程序员Fisher
2021-03-05
这个地方一直没想明白老师,不是synchronized也能保证可见性吗,就是说下一个线程进来之后能看到之前的操作,就是说下一个线程进来,之前synchronized不应该完全执行完了吗,为啥不加volatile还会出现对象泄漏的问题呢?
写回答
2回答
-
悟空
2021-03-05
你的理解是对的,但是还有一种情况:在上一个线程退出synchronized代码块之前,下一个线程就进来了,此时synchronized是不保证可见性的,就需要用到volatile了。
042021-03-09 -
程序员Fisher
提问者
2021-03-05
照这么理解饿汉模式的那种线程安全的写法 是不是也得加volatile,不太理解这个地方,求老师解答
00
相似问题