单例懒汉代码
时间: 2023-07-02 15:19:20 浏览: 80
以下是使用懒汉式单例模式实现的代码:
```java
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
```
以上代码中,getInstance()方法使用了 synchronized 关键字来确保线程安全。在第一次调用时,如果 instance 为 null,就会创建一个新的实例,以后每次调用都会返回之前创建的实例。
相关问题
单例懒汉线程安全代码
以下是使用双重检查锁定实现的懒汉式单例模式代码,可以确保线程安全:
```java
public class Singleton {
private volatile static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}
```
以上代码中,使用了 volatile 关键字来确保 instance 变量对所有线程的可见性,双重检查锁定机制确保了线程安全。在第一次调用时,如果 instance 为 null,就会创建一个新的实例,以后每次调用都会返回之前创建的实例。
kotlin 单例懒汉
Kotlin是一种现代化的编语言,它支持面向对象编程和函数式编程。在Kotlin中,单例模式是一种常见的设计模式,用于确保一个类只有一个实例,并提供全局访问点。
在Kotlin中,可以使用懒汉模式来实现单例。懒汉模式是指在需要时才创建实例,而不是在类加载时就创建实例。这样可以延迟实例的创建,提高性能和资源利用率。
下面是一个Kotlin单例懒汉模式的示例代码:
```kotlin
class Singleton private constructor() {
companion object {
private var instance: Singleton? = null
fun getInstance(): Singleton {
if (instance == null) {
synchronized(this) {
if (instance == null) {
instance = Singleton()
}
}
}
return instance!!
}
}
// 其他成员方法
}
```
在上面的示例中,Singleton类的构造函数被私有化,这样外部就无法直接创建实例。通过在伴生对象(companion object)中定义一个getInstance()方法来获取Singleton的实例。在getInstance()方法中,使用双重检查锁定(double-checked locking)来确保只有一个实例被创建。