从一道面试题讲起:采用DCL实现单例模式时,是否需要加volatile关键字?为什么?
有关单例模式
我们在网上搜如何实现单例模式时,帖子往往给出多种实现:饿汉模式、懒汉模式、双重锁懒汉模式(双重锁检查,double check lock,经常简写做DCL)、静态内部类模式、枚举模式等。
此处可以参考 深入理解单例模式:静态内部类单例原理 这篇文章。
顺带提一句,《Java并发编程的艺术》(方腾飞)第3章有讨论过DCL、静态内部类这两种实现方式,建议去读一读。 Continue reading »