什么是单例模式(Singleton)? 请在下面写出一个单例模式类,并支持多线程调用
时间: 2024-05-16 21:16:47 浏览: 103
如何正确地写出单例模式编程开发技术共5页.pdf.zip
单例模式是一种常见的设计模式,用于限制一个类只能被实例化一次,并提供全局访问点。常见的应用场景是线程池、缓存、日志等。
以下是一个支持多线程调用的单例模式类的示例代码:
```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;
}
}
```
在以上示例中,单例模式类被声明为私有构造方法,防止外部实例化。同时,使用了双重检查锁定和volatile关键字来保证线程安全和内存可见性。在getInstance方法中,当instance为null时,才会进行同步锁定并再次判断是否为null,以确保只有一个实例被创建。最后返回该对象的唯一实例。
阅读全文