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

网站开发需要的软件新乡建网站

网站开发需要的软件,新乡建网站,建设银行广西分行招聘网站,黄冈网站seo一、描述 单例模式就是程序中一个类只能有一个对象实例 举个例子: //引出单例模式#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.hkea.cn/news/14495468/

相关文章:

  • 十堰北京网站建设wordpress的pdf阅读
  • wordpress 经典网站品牌网站建设十小蝌蚪
  • 企业建站系统营销吧tt团队wordpress模板.
  • 建筑工地招聘网站宣传片拍摄合同范本
  • 网站定制制作湛江专业建站优质商家
  • 青浦做网站公司乡村生态旅游网站建设方案
  • 南宁网站建设超博网络网站是陕西省城乡建设综合服务中心
  • 深圳宝安住房和建设局网站官网行业门户网站案例分析
  • 安徽做网站做网站用母版页不好么
  • 青浦手机网站制作wordpress链接形式
  • 怎么做网站wordpress 中文 相册插件
  • 徐州市城乡建设局官方网站网站备案完毕 怎样建设网站
  • 室内设计师的网站西安 网站建设 费用
  • 网站开发w亿玛酷1专注最近几天发生的新闻大事
  • 学校网站建设运行情况南昌启航科技
  • 深圳光明专业网站设计wordpress 影视
  • 官方网站建设 找磐石网络一流建设网站的原则
  • 网站收录多少才有排名某服装企业网站建设方案
  • 自己做网站要会什么软件小型手机网站建设哪家好
  • 服务器出租网站自助建网站软件平台
  • 云浮 网站建设东莞有什么比较好的网站公司
  • wordpress图片本地化关键词优化的作用
  • 淘宝上做进出口网站有哪些制作网页的基本步骤记事本
  • 个人网站名称大全成品网站nike源码1688免费
  • 网站建设项目设计报告一站式做网站费用
  • 商业计划书网站建设windows部署wordpress
  • 优的网站建设网络营销推广公司名称
  • 建设部网站安全事故拓者设计吧注册码共享
  • 福建网站优化建设小程序制作怎么导入题库
  • 做营销网站企业长沙建站模板