当前位置: 首页 > news >正文

做网站流程视频专做餐饮的网站

做网站流程视频,专做餐饮的网站,微信公众号登录平台登录,app用什么开发软件好前言 单例模式是日常开发中最常见的一种设计模式,常用来做为池对象,或者计数器之类的需要保证全局唯一的场景。 单例模式的目的是保证在整个程序中只存在一个对象实例,使用单例一个前提条件就是构造器私有化,不允许通过new 对象…

前言

单例模式是日常开发中最常见的一种设计模式,常用来做为池对象,或者计数器之类的需要保证全局唯一的场景。

单例模式的目的是保证在整个程序中只存在一个对象实例,使用单例一个前提条件就是构造器私有化,不允许通过new 对象的方式。单例模式的实现主要方式有如下几种:
1、饿汉式实现
2、使用枚举类实现
3、懒汉式使用双重检查锁实现。
4、使用静态内部类实现

“饿汉式”

饿汉式:顾名思义就是很"饥饿",初始化就创建设好了实例。

public class Demo1 {private static Demo1 demo1 = new Demo1();private void Demo1() {}public static Demo1 getInstance() {return demo1;}
}

“懒汉式” -双重检查锁

为什么要使用双重检查锁?因为如果在并发的状态下,如果A线程先进来,判断demo2为null,然后创建实例对象,在判断了为null的这个时间点,B线程也进来了判断demo2为null,也去创建实例,这样就不能保证单例。

public class Demo2 {private volatile static Demo2 demo2 = null;private void Demo2() {}public static Demo2 getInstance() {if (demo2 == null) {synchronized(Demo2.class) {if (demo2 == null) {demo2 = new Demo2();}}}return demo2;}}

“懒汉式” -使用静态内部类的方式实现

使用静态内部类的方式实现的单例式利用了java的特性,就是static属于类,在初始化的时候就已经执行了,且static修饰的对象或者静态代码块只执行一次。

public class Demo3 {private static Demo3 demo3;private void Demo3() {}private static class HolderClass {private static Demo3 demo3 = new Demo3();}public static Demo3 getInstance() {return HolderClass.demo3;}
}

枚举方式

枚举方式利用了枚举的特性,enum修饰的类被称之为枚举类,java不允许通过反射来创建enum类,同时enum修饰的类默认继承了Enum类,其构造函数为private修饰的,因此枚举类具有天然的单例特性,很适合用做单例模式。

public class Demo4 {private Demo4() {}public static enum SingleEnum {INSTANCE;private Demo4 demo4;private SingleEnum() {demo4 = new Demo4();}public Demo4 getInstance() {return demo4;}}public static Demo4 getInstance() {return SingleEnum.INSTANCE.getInstance();}// 测试public static void main(String[] args) {Demo4 instance = getInstance();}
}

下面来看一个单例模式的典型应用场景:
JefLogTail采集工具中的server端,在处理日志多线程入库时,为了防止反复的创建线程池导致服务器压力大,因此采用单例模式来定义线程池的获取。如下:

public class LogHandle extends ServerMessageHandler {private LogSave logSave;@Overrideprotected void channelRead0(ChannelHandlerContext channelHandlerContext, Message message) throws Exception {try {
/*           String content = (String) message.getContent();String ip = message.getAttachment("ip");String fileName = message.getAttachment("fileName");System.out.println("ip地址:" + ip);System.out.println("文件名称:" + fileName);*/ThreadPoolCfg.getThreadPool().execute(new Runnable() {@Overridepublic void run() {logSave.save(message);}});// 多线程处理} catch (Exception e) {e.printStackTrace();}}public void setLogSavePlan(LogSave logSave) {this.logSave = logSave;}
}
http://www.yayakq.cn/news/116703/

相关文章:

  • 学校网站建设小组及分工品牌战略咨询公司
  • 做酒水网站有哪些女生做网站推广
  • 网站title 在哪里设置哪个网站做logo
  • 做彩票网站代理犯法吗6广州互联网营销师
  • server 2008 iis 部署网站建站推广哪里有建站新闻资讯
  • 山东菏泽网站建设vue做购物网站
  • 网站建设案例教程视频教程qq网站登录
  • 新泰网站建设方案asp.net mvc5 网站开发实践
  • 四川科隆建设有限公司网站网站开发基础知识
  • 网页设计素材网站推荐企业展厅 设计 公司
  • 比58同城做的好的网站wordpress sozo
  • 企业信用信息公信系统官网重庆排名优化整站优化
  • 济南网站建设首推企优互联不错做公司+网站建设
  • 网站建设以后主要做什么做二手货车都做什么网站
  • 建设部网站如何下载规范 标准wordpress如何配置伪静态页面
  • 挂马网站 名单上海 网站建设 案例
  • 做一网站多少钱平面设计公司经营范围
  • 佛山市禅城网站建设潍坊奎文住房和城乡建设局网站
  • 网站开发用不用写交互商城全网推广运营公司
  • 外贸seo网站大全php网站建设设计制作
  • 网站维护英文渭南seo快速排名
  • 黑龙江网站建站建设网站收录和反链都正常关键词却没有排名的原因
  • 石家庄网站建设团队焦作市建设银行网站
  • 连云港建设部网站WordPress突然全站404
  • 济源专业做网站公司道农网站建设
  • 建设织梦网站模板2023营业执照年检
  • 兰山区网站建设推广ui培训班哪里有
  • 医疗设计网站深圳品牌设计网站
  • 教育信息化建设网站dw网页制作过程
  • 郑州网站建设项目如何做logo标志