解决单例模式中懒汉式不支持高并发,饿汉式不支持懒加载问题最简单方法——基于枚举类型的单例实现

一、前言 解决单例模式中懒汉式不支持高并发,饿汉式不支持懒加载问题,确实很多小编也是写过--->
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 枚举类型本身的特性,保证了实例创建的线程安全性和实例的唯一性。比较推荐使用

    推荐阅读