下面是Java实现线程安全的单例模式的代码:
public class Singleton {
private static volatile Singleton instance;
private Singleton(){
// 私有化构造方法
}
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}
在这个实现中,我们使用了双重检查锁定来确保线程安全。在创建对象的时候,我们给单例类加锁来确保只有一个线程可以访问,同时还要将instance变量标识为volatile,这样可以避免出现指令重排序的问题。这个实现既能保证线程安全,又能保证性能。