一、前言
解决单例模式中懒汉式不支持高并发,饿汉式不支持懒加载问题,确实很多小编也是写过—>
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 枚举类型本身的特性,保证了实例创建的线程安全性和实例的唯一性。比较推荐使用
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/93049.html