一、前言
解决单例模式中懒汉式不支持高并发,饿汉式不支持懒加载问题,确实很多小编也是写过--->
DCL(Double Check Lock双重检锁机制)解决单例模式中懒汉式不支持高并发,饿汉式不支持懒加载问题
静态内部类解决单例模式中懒汉式不支持高并发,饿汉式不支持懒加载问题
大家都可以看一下。
二、代码实现
- 单例模式对象
import java.util.concurrent.atomic.AtomicInteger;
public class Single {
private AtomicInteger count = new AtomicInteger(3);
public int getReduce(){
return count.decrementAndGet();
}
}
- 枚举类型对象
public enum PhoneEnum {
PHONE_ENUM;
private Single instance;
PhoneEnum() {
instance = new Single();
}
public Single getInstance() {
return instance;
}
}
- 测试类
public class BingFa {
public static void main(String[] args) {
// 创建3个线程,线程里面进行加操作
for (int i = 0; i < 3; i++) {
new Thread(() -> {
Single instance = PhoneEnum.PHONE_ENUM.getInstance();
int reduce = instance.getReduce();
System.out.println(Thread.currentThread().getName()+
"线程抢到了手机,剩余手机数量"+"-----"+reduce);
}, String.valueOf(i)).start();
}
}
}
- 测试结果
三、总结
最简单的实现方式,基于枚举类型的单例实现。这种实现方式通过 Java 枚举类型本身的特性,保证了实例创建的线程安全性和实例的唯一性。比较推荐使用
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。