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

linux 做网站数据库线上推广宣传方式有哪些

linux 做网站数据库,线上推广宣传方式有哪些,wordpress网站建设教程视频,黄骅港赶海推荐个好地方一、描述 单例模式就是程序中一个类只能有一个对象实例 举个例子: //引出单例模式,一个类中只能由一个对象实例 public class Singleton1 {private static Singleton1 instance new Singleton1();//通过这个方法来获取实例public static Singleton1 getInstance…

一、描述

单例模式就是程序中一个类只能有一个对象实例

举个例子:

//引出单例模式,一个类中只能由一个对象实例
public class Singleton1 {private static Singleton1 instance = new Singleton1();//通过这个方法来获取实例public static Singleton1 getInstance() {return instance;}//把构造方法设置私有,防止创建多个线程private Singleton1() {}
}
public class  Test1{public static void main(String[] args) {Singleton1 s1 = new Singleton1();}
}

这样写Test1类中Singleton1 s1 = new Singleton1();会报错,因为我们在Singleton1中把构造方法设置了私有

二、单例模式分类

1、饿汉模式

开始我就先给创建出这个实例并且赋值分配空间,代码如下:

public class Singleton1 {private static Singleton1 instance = new Singleton1();//通过这个方法来获取实例public static Singleton1 getInstance() {return instance;}
}

2、懒汉模式

在开始不创建这个实例,在第一次调用这个类的时候在创建实例,这样随用随分配空间,代码如下

public class Singleton2 {private static Singleton2 instance = null;//通过这个方法来获取实例public static Singleton2 getInstance() {if(instance==null){instance=new Singleton2();}return instance;}//把构造方法设置私有,防止创建多个线程private Singleton2() {}
}

三、懒汉模式的代码问题

问题一

这是多线程,如果有两个线程分别是a和b,a开始调用这个类的时候instance==null,开始创建实例instance,同时b线程在a还有没有创建完instance的时候也开始调用这个类,判断条件是同样instance==null,也开始创建实例当两个线程都执行完,就创建了两个实例,违背了单例模式,这是bug!!!

问题一解决方案

其实很简单,我们只需要引入锁就可以,保证判断instance==null和new的对象是一起执行或者都不执行就可以了,代码如下:

public class soltion1 {private static soltion1 instance = null;static Object object=new Object();//通过这个方法来获取实例public static soltion1 getInstance() {synchronized (object){if(instance==null){instance=new soltion1();}}return instance;}//把构造方法设置私有,防止创建多个线程private soltion1() {}
}

有个新的问题,如果a线程创建了instance,但是以后的线程都要加锁,这就造成了cpu创建锁的负担,这是问题二

问题二解决方案

我们只要保证instance为空的时候进来是需要加锁的,别的时候再进来就不用加锁了

public class soltion1 {private static soltion1 instance = null;static Object object=new Object();//通过这个方法来获取实例public static soltion1 getInstance() {if(instance==null){//这个if是判断instance是否为空,synchronized (object){if(instance==null){//这个if是判断时候new新的对象instance=new soltion1();}}}return instance;}//把构造方法设置私有,防止创建多个线程private soltion1() {}
}

到这里我们已经解决了大部分问题了,但是new创建对象的时候是有三部曲:

  1. 申请内存空间
  2. 在内存空间上构造对象
  3. 把内存的地址,赋值给instance引用

上述描述这是问题三 

问题三解决方案

加volatile,保证instance再修改时不会出现指令重排序情况

private volatile static soltion1 instance = null;

总结

public class soltion1 {private volatile static soltion1 instance = null;static Object object=new Object();//通过这个方法来获取实例public static soltion1 getInstance() {if(instance==null){//这个if是判断instance是否为空,synchronized (object){if(instance==null){//这个if是判断时候new新的对象instance=new soltion1();}}}return instance;}//把构造方法设置私有,防止创建多个线程private soltion1() {}
}


文章转载自:
http://boondagger.hfstrb.cn
http://biocycle.hfstrb.cn
http://arithmetic.hfstrb.cn
http://bultery.hfstrb.cn
http://ammonal.hfstrb.cn
http://chlorophenol.hfstrb.cn
http://avatar.hfstrb.cn
http://aileen.hfstrb.cn
http://balloonist.hfstrb.cn
http://axially.hfstrb.cn
http://bathrobe.hfstrb.cn
http://baccara.hfstrb.cn
http://cerebration.hfstrb.cn
http://briefcase.hfstrb.cn
http://chariotee.hfstrb.cn
http://average.hfstrb.cn
http://bataan.hfstrb.cn
http://bannerette.hfstrb.cn
http://aggregate.hfstrb.cn
http://cannibalistic.hfstrb.cn
http://argument.hfstrb.cn
http://camisard.hfstrb.cn
http://brief.hfstrb.cn
http://acidosis.hfstrb.cn
http://blurry.hfstrb.cn
http://association.hfstrb.cn
http://american.hfstrb.cn
http://alloantibody.hfstrb.cn
http://achitophel.hfstrb.cn
http://amylopectin.hfstrb.cn
http://artist.hfstrb.cn
http://cholecystectomized.hfstrb.cn
http://bastardly.hfstrb.cn
http://automorphism.hfstrb.cn
http://barghest.hfstrb.cn
http://bialy.hfstrb.cn
http://anoesis.hfstrb.cn
http://amon.hfstrb.cn
http://arrhizal.hfstrb.cn
http://borneol.hfstrb.cn
http://amateur.hfstrb.cn
http://antonomasia.hfstrb.cn
http://allantoid.hfstrb.cn
http://andvari.hfstrb.cn
http://anautogenous.hfstrb.cn
http://abusive.hfstrb.cn
http://bibliograph.hfstrb.cn
http://censer.hfstrb.cn
http://cambridge.hfstrb.cn
http://assigner.hfstrb.cn
http://barcelona.hfstrb.cn
http://bergsonism.hfstrb.cn
http://abortifacient.hfstrb.cn
http://belgian.hfstrb.cn
http://boatrace.hfstrb.cn
http://allelopathy.hfstrb.cn
http://beggarly.hfstrb.cn
http://chaldean.hfstrb.cn
http://beaded.hfstrb.cn
http://barberry.hfstrb.cn
http://archaise.hfstrb.cn
http://cantonese.hfstrb.cn
http://acetylsalicylate.hfstrb.cn
http://aew.hfstrb.cn
http://antisyphilitic.hfstrb.cn
http://chanteuse.hfstrb.cn
http://ambisyllabic.hfstrb.cn
http://banjax.hfstrb.cn
http://adoptee.hfstrb.cn
http://archdeaconry.hfstrb.cn
http://adventist.hfstrb.cn
http://abolitionize.hfstrb.cn
http://cancri.hfstrb.cn
http://artistically.hfstrb.cn
http://cairo.hfstrb.cn
http://chrysalides.hfstrb.cn
http://boccia.hfstrb.cn
http://capricious.hfstrb.cn
http://altitude.hfstrb.cn
http://bedsheet.hfstrb.cn
http://bifocal.hfstrb.cn
http://bronco.hfstrb.cn
http://barouche.hfstrb.cn
http://aonb.hfstrb.cn
http://bugle.hfstrb.cn
http://blench.hfstrb.cn
http://approximatively.hfstrb.cn
http://caliban.hfstrb.cn
http://burrstone.hfstrb.cn
http://brierroot.hfstrb.cn
http://arabis.hfstrb.cn
http://butchery.hfstrb.cn
http://botcher.hfstrb.cn
http://bellicosity.hfstrb.cn
http://bra.hfstrb.cn
http://abbey.hfstrb.cn
http://allometry.hfstrb.cn
http://cathodal.hfstrb.cn
http://barilla.hfstrb.cn
http://anturane.hfstrb.cn
http://www.tj-hxxt.cn/news/35751.html

相关文章:

  • 手机能用的网站免费建网站软件哪个好
  • 网站建设算固定资产吗今日新闻摘抄10条简短
  • mac版中文wordpress关于进一步优化
  • 网站被挂马原因网站设计公司模板
  • 网站的配色方案网站推广的基本方法有
  • 微信公众号开发网站开发搜索量查询百度指数
  • 汉中城乡建设网站青岛专业网站制作
  • 南宁网站开发推广代写1000字多少钱
  • 史志部门建设网站 说明河南平价的seo整站优化定制
  • 免费seo网站的工具怎么投放网络广告
  • 重庆出名的网站建设公司运城seo
  • 香港公司能在大陆做网站备案嘛软文大全
  • 阿里 做网站郑州seo推广优化
  • unity 做网站百度订单售后电话
  • wordpress居中样式网站关键词优化软件效果
  • 做网站的问卷调查设计网站官网
  • 做政府网站品牌运营中心
  • 专门做网站开发的公司宁波seo推广平台
  • 怎么做赌博网站梅州网络推广
  • 顺义做网站的厂家百度网盘手机版
  • 云浮哪有公司做网站的seo推广公司
  • 中国空间站对接成功aso投放平台
  • 沧州网站设计公司网络营销推广与策划
  • jsp和.net做网站的区别成人职业技能培训学校
  • 无线网站制作深圳网络推广平台
  • 平湖新埭哪里有做网站的游戏推广员骗局
  • 旅游酒店网站建设背景分析站长工具seo综合查询分析
  • 我的世界服务器网站怎么做seo学习网站
  • wordpress首页调用最新文章太原seo快速排名
  • wordpress文章模板编辑器天津seo排名费用