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

中国建设招标网?官方网站网站建设推广公司需要哪些岗位

中国建设招标网?官方网站,网站建设推广公司需要哪些岗位,wordpress $_SERVER,wordpress 获取 图片说明目录 1 饿汉模式 2 懒汉模式 3 分析 啥是设计模式? 设计模式好⽐象棋中的 "棋谱". 红⽅当头炮, ⿊⽅⻢来跳. 针对红⽅的⼀些⾛法, ⿊⽅应招的时候有⼀ 些固定的套路. 按照套路来⾛局势就不会吃亏. 软件开发中也有很多常⻅的 "问题场景". 针对这些问题…

目录

1 饿汉模式

2 懒汉模式 

3 分析


啥是设计模式? 设计模式好⽐象棋中的 "棋谱". 红⽅当头炮, ⿊⽅⻢来跳. 针对红⽅的⼀些⾛法, ⿊⽅应招的时候有⼀ 些固定的套路. 按照套路来⾛局势就不会吃亏. 软件开发中也有很多常⻅的 "问题场景". 针对这些问题场景, ⼤佬们总结出了⼀些固定的套路. 按照这 个套路来实现代码, 也不会吃亏.

单例模式能保证某个类在程序中只存在唯⼀⼀份实例, ⽽不会创建出多个实例.

这⼀点在很多场景上都需要. ⽐如 JDBC 中的 DataSource 实例就只需要⼀个.

单例模式具体的实现⽅式有很多. 最常⻅的是 "饿汉" 和 "懒汉" 两种

1 饿汉模式

饿汉模式(迫切) 程序启动, 类加载之后,立即创建出实例.

//单例模式 (饿汉模式)class Singleton {private static Singleton instance = new Singleton();public static Singleton getInstance() {return instance;}// 做出一个限制, 禁止别人去 new 这个实例!!private Singleton() {}}
public class Demo16 {public static void main(String[] args) {Singleton s1 = Singleton.getInstance();Singleton s2 = Singleton.getInstance();System.out.println(s1 == s2);// Singleton s3 = new Singleton();// System.out.println(s1 == s3);}
}

 

2 懒汉模式 

懒汉模式(延时) 则是在第一次使用实例的时候, 再创建. 否则能不创建就不创建.

// 单例模式(懒汉模式)
class SingletonLazy {private static SingletonLazy instance = null;public static SingletonLazy getInstance() {if (instance == null) {instance = new SingletonLazy();}return instance;}private SingletonLazy() {}
}public class Demo17 {public static void main(String[] args) {SingletonLazy s1 = SingletonLazy.getInstance();SingletonLazy s2 = SingletonLazy.getInstance();System.out.println(s1 == s2);}
}

3 分析

那么上述两种模式, 谁是线程安全的. 换句话说, 在多线程调用getInstance的情况下, 哪个代码是线程安全的(不会有bug).

先分析饿汉模式.

再来看懒汉模式.

 

那么如何解决上述问题呢?

首先想到的就是加锁, 我们要让判断和赋值操作绑在一起.

 

但是加锁是一个成本较高的操作, 可能会引起阻塞等待. 

加锁的基本原则, 应该是非必要, 不加锁. 不能无脑加锁. 如果无脑加锁, 就会导致程序执行效率受到影响.

Vector, HashTable, StringBuffer ....都是在关键方法上写了synchronized .
无论是单线程使用,还是多线程使用, 无论是否场景存在线程安全问题, 都是会加锁的, 也都会影响到效率, 都不太建议使用.

但是代码还是有一些问题.

 

 

 

经过上述的优化中后, 线程安全的懒汉模式代码就成了这个样子.

// 单例模式(懒汉模式)
class SingletonLazy {private static volatile SingletonLazy instance = null;//instance是null, 就说明是首次调用, 就需要加锁. 如果是非null, 就说明是后续调用,就不需要加锁public static SingletonLazy getInstance() {if (instance == null) {synchronized (SingletonLazy.class) {if (instance == null) {instance = new SingletonLazy();}}}return instance;}private SingletonLazy() {}
}public class Demo17 {public static void main(String[] args) {SingletonLazy s1 = SingletonLazy.getInstance();SingletonLazy s2 = SingletonLazy.getInstance();System.out.println(s1 == s2);}
}
http://www.dtcms.com/a/531436.html

相关文章:

  • 现在网站做SEO怎么样怎样做网站內链
  • 做的网站为什么图片看不了怎么回事功能网站建设
  • 如何免费建网站家装设计网页论文
  • 网站推广全过程深圳企业网站建设制作网络公司
  • 浙江省建设厅官方网站ui设计师培训费用
  • 普洱高端网站建设价格企业网站需要注意什么
  • 白沙网站建设的目标免费的app下载网站
  • 广州公司网站设计制作centos7 wordpress搭建
  • 建设网站要注意什么问题企业产品推广平台
  • 北师大 网页制作与网站建设 考试阳性几天就不传染人了
  • wordpress适合建什么网站吗e福州电子公交卡
  • 陕西建设网站电子政务大厅大健康品牌策划公司
  • wap网站 什么意思建站方案书
  • 品牌网站设计服务食品建设网站的目的
  • 网站可以用什么做义乌进货网平台
  • 邮箱注册过的网站查询云翼计划wordpress
  • 贵阳有哪家做网站建设好点的触摸网站手机
  • 网站制作建设飞沐长沙做医院的网站建设
  • 格子铺网站建设方案企业公示信息查询系统陕西
  • 医院关于建设官方网站的请示天翼云主机怎么建设网站
  • 建一个私人彩票网站2023网页游戏排行榜
  • 网站宣传夸大处罚手机兼职赚钱一单一结学生
  • 做什么网站广告拍摄
  • 沧州网站建设公司株洲网站的建设
  • 网站标题大全网站建设项目化教程
  • wordpress查看数据库密码苏州网站优化建设
  • 做网站还有钱赚吗什么语言建手机网站
  • wordpress is page西安seo招聘
  • 建设网站都需要哪些资料如何提升网站的收录量
  • 现在做网站用什么软件建设银行官方网站app下载