- 浏览: 113660 次
- 性别:
- 来自: 深圳
文章分类
/** * 单例设计模式--懒汉式--饿汉式 * * 懒汉式--适用于实例的延迟加载--如果多线程访问,容易出现安全问题--可以通过加同步锁解决 * 加锁的效率问题需要考究 * * 延迟加载的单例设计模式--懒汉式 */ //饿汉式 class Single1 { private static final Single1 s = new Single1(); private Single1(){} public static Single1 getInstance(){ return s; } } //懒汉式--有问题的 /** * 在多线程访问过程中会产生安全隐患 */ // class Single2{ // private static Single2 s = null; // private Single2(){} // // public static Single2 getInstance(){ // if(s==null){ // //线程进入A--阻塞 // //线程进入B--阻塞 // //A唤醒--new一次 // //B唤醒--new一次 // //==>单例失效 // s = new Single2(); // } // return s; // } // } //安全解决方案 // class Single2{ // private static Single2 s = null; // private Single2(){} // // //问题--多线程,每个线程都想获取实例例都要判断一次锁--懒汉式加锁会影响程序效率 // //B不能进入-- // public static synchronized Single2 getInstance(){ // if(s==null){ // //A线程进入--阻塞--有同步锁 // s = new Single2(); // } // return s; // } //} //懒汉式--升级 class Single2{ private static Single2 s = null; private Single2(){} /** * 通过双重判断以提高懒汉式的效率 */ public static Single2 getInstance(){ if(s==null){ //2.B线程进入--被锁挡住,停止 synchronized(Single2.class) { //4.B进入不满足--null return s if(s==null){ //1.A线程进入--阻塞 //3.A唤醒--执行完毕 s = new Single2(); } } } return s; } }
发表评论
-
Java技术——你真的了解String类的intern()方法吗
2017-08-27 13:01 480http://blog.csdn.net/seu_calvin ... -
java的集合操作(交集、并集、差集)
2015-12-08 16:33 825/** * 求ls对ls2的差集,即ls中有, ... -
Deadlock found when trying to get lock; try restarting transaction
2015-12-02 20:13 1087批量插入数据遇到异常 this.getJdbcTemplate ... -
Spring3 MVC请求参数获取的几种方法
2015-11-20 14:33 561参考文档 http://www.cnblogs.com/le ... -
linux下安装jdk1.7
2015-07-06 12:20 410jdk下路径 http://www.oracle.com/te ... -
Java日期格式化常用方法
2014-06-21 21:03 499参考文档: http://www.cnblogs.com/ ... -
JAVA图片压缩
2014-04-23 22:26 576可以将像素高的图片转成像素低的图片,同时图片清晰度会降低 j ... -
JAVA的字符串拼接与性能
2014-01-17 15:33 415因此,在不考虑线程安全和同步的情况下,为了获得最高的性能,我们 ... -
MS Sql Server 中主从库的配置和使用介绍-数据库备份
2013-11-14 11:52 1140博客链接地址: http://technet.microsof ... -
JAVA的简单缓存机制
2013-10-30 16:57 706说明: 该缓存结构可能存在多线程安全问题,参考Concurre ... -
JAVA时间类SimpleDateFormat,Calendar,Date
2013-05-29 10:00 1076package javaTest; import j ... -
植物大战僵尸JAVA版
2013-05-21 10:40 901http://www.oschina.net/code/sni ... -
JDBC数据库访问操作,支持JSON格式
2013-05-21 10:29 1339开源中国: http://www.oschina.net/c ... -
java与JavaScript 将字符串每隔三位添加一个逗号(左往右、右往左)
2013-05-09 17:03 4964在平时处理现金金额显示时,我们经常会遇到这样的问题:从个位开始 ... -
JAVA多线程死锁程序Demo
2013-05-01 21:01 1002package thread; /** * JA ... -
JAVA多线程的5种状态
2013-05-01 18:31 1002JAVA多线程的五种状态图解 -
JAVA嵌套循环的break,continue,return
2013-04-22 22:25 3246package loop; public class ... -
JAVA的SuppressWarnings
2013-04-20 15:53 735有时候使用Myeclipse总是出现 黄色的警告,看起来不爽, ...
相关推荐
java单例设计模式-饿汉式-懒汉式[参照].pdf
java单例设计模式-饿汉式-懒汉式[归纳].pdf
。
。
Java中懒汉单例设计模式线程安全测试,单例设计模式的测试
。
。
java设计模式中的单例模式,而单例模式又分为饿汉模式和懒汉模式
java 单例模式(懒汉式与饿汉式).docx
Java多线程--解决单例模式中的懒汉式的线程安全问题
Java 单例模式 懒汉模式 //懒汉式 多线程中不可以保证是一个对象
使用单例模式创建学生管理系统(饿汉式、懒汉式)
主要介绍了java 单例模式的相关资料,这里对懒汉式与饿汉式都做了实例介绍,需要的朋友可以参考下
一个简单的java工程,包含注释,一目了然,其中包含了单例模式的所有实现方式,懒汉式,饿汉式,双重校验,枚举,静态内部类等方式实现单例。
计算机后端-Java-Java核心基础-第20章 多线程 11. 线程安全的单例模式之懒汉式.avi
代码中演示了Java设计模式中的单例模式,其中包括饿汉单例模式,懒汉单例模式以及序列化饭序列化单例模式。在实际的开发中,可以直接借鉴使用。
单例模式(有常用的懒汉式单例类,饿汉式单例类)
java 单例模式(饿汉模式与懒汉模式).docx
Java单例模式,其中:单例模式分三种:懒汉式单例、饿汉式单例、登记式单例三种
Java设计模式-单例模式(懒汉和恶汉)