高并发下单例线程安全

1.使用静态内置类实现单例模式

自定义线程池

2.使用static代码块实现单例

3.使用静态内置类实现单例模式

4.使用static代码块实现单例

c 复制代码
public class MySingleton {

    //使用volatile关键字保其可见性
    volatile private static MySingleton instance = null;

    private MySingleton(){}

    public static MySingleton getInstance() {
        try {  
            if(instance != null){//懒汉式 

            }else{
                //创建实例之前可能会有一些准备性的耗时工作 
                Thread.sleep(300);
                synchronized (MySingleton.class) {
                    if(instance == null){//二次检查
                        instance = new MySingleton();
                    }
                }
            } 
        } catch (InterruptedException e) { 
            e.printStackTrace();
        }
        return instance;
    }
}

思路可以沿用到rabbitmq重连上

相关推荐
小强库计算机毕业设计31 分钟前
SpringBoot+Vue3 学生宿舍管理系统实战
java·spring boot·后端·vue·学生宿舍管理系统
李冰然44 分钟前
深入Java集合框架:HashMap源码解析(JDK 8)
java
人道领域2 小时前
【0-1的agent进阶篇】RAG:从Embedding到检索增强生成的底层逻辑
java·embedding·agent·rag
桦说编程2 小时前
盘点并发集合里那些容易误判的行为
java·后端·性能优化
IT爱学堂3 小时前
java版数据结构和算法+AI算法和技能学习指南
java·开发语言
evans在进步4 小时前
LeetCode 394:字符串解码——Java 单栈模拟与嵌套解析详解
java·python·leetcode
AI人工智能+电脑小能手4 小时前
大白话说Java设计模式-17-装饰器模式(源码剖析篇)
java·spring·设计模式·装饰器模式·源码分析·io流
m0_547486664 小时前
《Java程序设计与实践 》全套PPT课件2026
java·开发语言
土司大王5 小时前
LeetCode hto100——字母异位词分组
java·算法·leetcode
码匠许师傅5 小时前
【C++ 面试真题】聊聊 C++ 中的 lambda 表达式
java·c++·面试