线程安全的单例 java语言
时间: 2023-07-26 16:46:15 浏览: 95
JAVA并发编程实践-线程安全-学习笔记
好的,以下是一个线程安全的单例模式的示例代码(Java语言):
```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;
}
}
```
在这个示例代码中,我们使用了双重检查锁定来确保线程安全。在调用 `getInstance()` 方法时,会首先检查 `instance` 是否已经存在,如果不存在,则获取锁,并再次检查 `instance` 是否存在。如果不存在,则创建一个新的实例并将其赋值给 `instance`。
同时,我们使用了 `volatile` 关键字来确保多线程环境下的可见性,避免出现线程安全问题。
通过这种方式,我们可以确保在多线程环境下只会创建一个实例,并且能够保证线程安全。
阅读全文