java 单例线程安全
时间: 2023-11-18 08:54:07 浏览: 117
spring单例引起的线程安全问题
Java 单例模式的线程安全问题可以通过以下两种方式解决:
1. 饿汉式单例模式:在类加载时就创建实例,保证了线程安全,但是可能会浪费一定的内存空间。
2. 懒汉式单例模式:在第一次使用时才创建实例,但是需要考虑线程安全问题。可以通过 synchronized 关键字或者双重检查锁定(double-checked locking)来解决。
下面是懒汉式单例模式的示例代码:
```
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
```
其中,synchronized 关键字保证了 getInstance() 方法的原子性,即同一时间只能有一个线程访问该方法。
阅读全文