Java多线程中的单例模式两种实现方式
发布时间 - 2026-01-11 00:54:28 点击率:次Java多线程中的单例模式

一、在多线程环境下创建单例
方式一:
package com.ietree.multithread.sync;
public class Singletion {
private static class InnerSingletion {
private static Singletion single = new Singletion();
}
public static Singletion getInstance() {
return InnerSingletion.single;
}
}
方式二:
package com.ietree.multithread.sync;
public class DubbleSingleton {
private static DubbleSingleton ds;
public static DubbleSingleton getDs() {
if (ds == null) {
try {
// 模拟初始化对象的准备时间...
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized (DubbleSingleton.class) {
if (ds == null) { // 这个判断很重要,如果没有那将不是单例,而是多例
ds = new DubbleSingleton();
}
}
}
return ds;
}
public static void main(String[] args) {
Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
System.out.println(DubbleSingleton.getDs().hashCode());
}
}, "t1");
Thread t2 = new Thread(new Runnable() {
@Override
public void run() {
System.out.println(DubbleSingleton.getDs().hashCode());
}
}, "t2");
Thread t3 = new Thread(new Runnable() {
@Override
public void run() {
System.out.println(DubbleSingleton.getDs().hashCode());
}
}, "t3");
t1.start();
t2.start();
t3.start();
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Java多线程中的单例模式
# java
# 单例模式
# 多线程
# java多线程之线程安全的单例模式
# Java多线程下的单例模式参考
# JAVA多线程并发下的单例模式应用
# Java多线程实战之单例模式与多线程的实例详解
# Java多线程(单例模式
# 堵塞队列
# 定时器)详解
# Java多线程常见案例分析线程池与单例模式及阻塞队列
# Java多线程案例之单例模式懒汉+饿汉+枚举
# 希望能
# 如果没有
# 很重要
# 谢谢大家
# InnerSingletion
# static
# private
# single
# ds
# getDs
# DubbleSingleton
# getInstance
# return
# Singletion
# class
# brush
# pre
# strong
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
个人网站制作流程图片大全,个人网站如何注销?
linux写shell需要注意的问题(必看)
如何在宝塔面板中修改默认建站目录?
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权
七夕网站制作视频,七夕大促活动怎么报名?
Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区
Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性
如何续费美橙建站之星域名及服务?
如何用景安虚拟主机手机版绑定域名建站?
Laravel安装步骤详细教程_Laravel环境搭建指南
如何在IIS管理器中快速创建并配置网站?
Python并发异常传播_错误处理解析【教程】
bootstrap日历插件datetimepicker使用方法
Laravel怎么发送邮件_Laravel Mail类SMTP配置教程
如何快速上传自定义模板至建站之星?
Swift中switch语句区间和元组模式匹配
济南网站建设制作公司,室内设计网站一般都有哪些功能?
Laravel如何升级到最新版本?(升级指南和步骤)
高防服务器:AI智能防御DDoS攻击与数据安全保障
javascript中的数组方法有哪些_如何利用数组方法简化数据处理
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
微信公众帐号开发教程之图文消息全攻略
Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
三星网站视频制作教程下载,三星w23网页如何全屏?
实例解析angularjs的filter过滤器
Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
如何在景安云服务器上绑定域名并配置虚拟主机?
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
JavaScript模板引擎Template.js使用详解
微信小程序 配置文件详细介绍
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置
Laravel如何记录自定义日志?(Log频道配置)
js实现点击每个li节点,都弹出其文本值及修改
如何快速生成专业多端适配建站电话?
Laravel如何使用Livewire构建动态组件?(入门代码)
android nfc常用标签读取总结
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
如何用搬瓦工VPS快速搭建个人网站?
高性能网站服务器部署指南:稳定运行与安全配置优化方案
深圳网站制作平台,深圳市做网站好的公司有哪些?
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
大型企业网站制作流程,做网站需要注册公司吗?

