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

互联网站建设维护需要做什么佳木斯建设网站

互联网站建设维护需要做什么,佳木斯建设网站,绍兴专门做网站的公司,成都网站建设公司兴田德润在哪儿一、描述 单例模式就是程序中一个类只能有一个对象实例 举个例子: //引出单例模式#xff0c;一个类中只能由一个对象实例 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(instancenull){instancenew Singleton2();}return instance;}//把构造方法设置私有防止创建多个线程private Singleton2() {} } 三、懒汉模式的代码问题 问题一 这是多线程如果有两个线程分别是a和ba开始调用这个类的时候instancenull开始创建实例instance同时b线程在a还有没有创建完instance的时候也开始调用这个类判断条件是同样instancenull也开始创建实例当两个线程都执行完就创建了两个实例违背了单例模式这是bug!!! 问题一解决方案 其实很简单我们只需要引入锁就可以保证判断instancenull和new的对象是一起执行或者都不执行就可以了代码如下 public class soltion1 {private static soltion1 instance null;static Object objectnew Object();//通过这个方法来获取实例public static soltion1 getInstance() {synchronized (object){if(instancenull){instancenew soltion1();}}return instance;}//把构造方法设置私有防止创建多个线程private soltion1() {} } 有个新的问题如果a线程创建了instance但是以后的线程都要加锁这就造成了cpu创建锁的负担这是问题二 问题二解决方案 我们只要保证instance为空的时候进来是需要加锁的别的时候再进来就不用加锁了 public class soltion1 {private static soltion1 instance null;static Object objectnew Object();//通过这个方法来获取实例public static soltion1 getInstance() {if(instancenull){//这个if是判断instance是否为空synchronized (object){if(instancenull){//这个if是判断时候new新的对象instancenew soltion1();}}}return instance;}//把构造方法设置私有防止创建多个线程private soltion1() {} } 到这里我们已经解决了大部分问题了但是new创建对象的时候是有三部曲 申请内存空间在内存空间上构造对象把内存的地址赋值给instance引用 上述描述这是问题三  问题三解决方案 加volatile保证instance再修改时不会出现指令重排序情况 private volatile static soltion1 instance null; 总结 public class soltion1 {private volatile static soltion1 instance null;static Object objectnew Object();//通过这个方法来获取实例public static soltion1 getInstance() {if(instancenull){//这个if是判断instance是否为空synchronized (object){if(instancenull){//这个if是判断时候new新的对象instancenew soltion1();}}}return instance;}//把构造方法设置私有防止创建多个线程private soltion1() {} }
http://www.pierceye.com/news/484312/

相关文章:

  • 怎么给自己制作一个网站wordpress 中文摘要
  • 如何看网站的ftp服装网站建设策划书3000字
  • 无锡网站建设 网站制作常见的网站首页布局有哪几种
  • 网站研发PHP MYSQL网站开发全程实
  • 简约型网站国外做电商平台的网站还有什么
  • 云南昆明网站建设公司jsp网站开发详解下载
  • 上海h5网站开发网站建设在开封找谁做
  • 滨海建设局官方网站营销网络平台
  • 中国小康建设网是骗子网站吗?建设宁波市分行的互联网网站
  • 制造网站建设自己做游戏资讯网站
  • 网站建设质量如何衡量都江堰网站开发
  • 企业网站设计步骤中山制作网站的公司
  • 通化网站制作企信网官网查询入口
  • 无锡装修网站百科网站推广
  • 先做网站后付款怎么做网站弹窗通知
  • php做网站的分站学校网站开发价格
  • 静态动漫网站模板个人网站空间大小
  • 个人网站 如何做推广拓者设计吧官方网站
  • 农产品电子商务网站建设要求开发一款app软件需要多少钱
  • 仿微博网站模板织梦网站地图怎么做xml
  • 什么网站能买建设摩托车产品推广计划方案
  • 建设局网站买卖合同大连 商城网站制作公司
  • 网站开发实训意义湖州网站设计
  • 网站后台设置企业为什么要网站建设
  • 外贸网站推广平台有哪些怎么在亚马逊上开店铺
  • 网站模板下载简单的那种哪个网站可以做结婚请柬
  • 自建网站迁移wordpress 电影下载站
  • 深圳定制网站建设服务公司友情连接
  • 网络设计工资多少杭州seo网站排名优化
  • 免费空间申请网站网站开发技术联系方式