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

常州哪些网站公司做的好网页链接生成器

常州哪些网站公司做的好,网页链接生成器,免费网络短剧,cc彩球网站总代理怎么做单例模式#xff1a;保证某个类在程序中只存在唯⼀⼀份实例#xff0c;而不会创建出多个实例#xff0c;单例模式的类一般是构造器私有#xff0c;通过一个方法返回唯一实例#xff1b; 点这里查看线程安全的详细讲解#xff1b; 常见的单例模式分为饿汉式和懒汉式 一…单例模式保证某个类在程序中只存在唯⼀⼀份实例而不会创建出多个实例单例模式的类一般是构造器私有通过一个方法返回唯一实例 点这里查看线程安全的详细讲解 常见的单例模式分为饿汉式和懒汉式 一、饿汉式 饿汉式会在类加载的时候创建对象并初始化 public class Singleton {private static final Singleton instance new Singleton();private Singleton() {}public static Singleton getInstance() {return instance;} }以上是一个饿汉式实现的单例模式的典型代码由代码可以看出 在类加载的时候对象已经创建好了也就是不管你需不需要使用都已经存在了由 getInstance 方法返回这个对象getInstance 方法直接 return只涉及到读操作不涉及写操作因此饿汉式是线程安全的 二、懒汉式 懒汉式在类加载的时候并不会直接创建出实例而是在第一次使用的时候才会创建 public class Singleton {private static Singleton instance null;private Singleton() { }public static Singleton getInstance() {if (instance null) {instance new Singleton();}return instance;} } 以上代码是懒汉式实现的单例模式的典型代码其中 刚开始的时候instance 对象并没有实例化在使用 getInstance 方法获取该对象时会判断该对象是否为空为空才会初始化也就是第一次使用的时候为空之后使用就会直接返回该对象但是 getInstance 方法既存在读操作也存在写操作 instance new Singleton(); 那么在多线程的情况下是否会存在线程安全问题呢答案是肯定的试想如果两个线程同时执行到 if 判断此时 instance 为空两个线程都会进入 if 语句内这样两个线程就会各自创建两个对象并返回这就违背了单例模式的初衷 那么如何解决这个问题呢 优化一 可以使用 synchronized 加锁由于两个线程不应该同时判断出 instance null故可以对整个 if 块使用 synchronized 进行加锁于是代码就变为 public class Singleton {private static Singleton instance null;private Singleton() { }public static Singleton getInstance() {synchronized (Singleton.class) {if (instance null) {instance new Singleton();}}return instance;} }这样一来在多线程的情况下当一个线程进入到 if 块内其他线程就会阻塞等待等待出了synchronized 块之后instance 实例也就 new 完了其他线程再进行判断 instance 就不为 null 了但是这样一来之后的每次调用 getInstance 方法都会进行加锁释放锁等操作这样系统开销就非常大影响效率而我们只需要在第一次创建实例的时候加锁因此即为了保证线程安全又要保证效率就得对上述代码进一步优化 优化二 由于我们只需要在第一次创建实例的时候才加锁因此可以在 synchronized 外面再包装一层 if 判断于是代码进一步变为 public class Singleton {private static Singleton instance null;private Singleton() { }public static Singleton getInstance() {if(instance null) {synchronized (Singleton.class) {if (instance null) {instance new Singleton();}}}return instance;} } 这样一来既保证了线程安全又不会非常影响效率但是上述代码还存在一个问题指令重排序问题在 new Singleton() 实例的时候new 操作可以被拆分为三步 1申请内存空间 2在内存空间上构造对象 3把内存地址赋值给实例引用 编译器为了执行效率会优化这三步的顺序但是 1 肯定是最先执行的因此 new 操作可能的执行顺序为 1 - 2 - 31 - 3 - 2当执行顺序为后者的时候假设有两个线程 t1t2在 t1 执行完 1, 3 还来不及执行 2 的时候此时 t2 线程执行到 if 判断此时由于 t1 线程执行了步骤 3 所以 t2 判断 if 不为 null就直接返回 instance 对象了但此时 instance 指向的是一个还没有初始化的非法对象因此 t2 线程的后续代码访问 instance 里面的属性和方法时就会出错为了避免这种情况需要对上述代码再进行优化 优化三 使用 volatile 关键字告诉编译器不要优化指令重排序 public class Singleton {private static volatile Singleton instance null;private Singleton() { }public static Singleton getInstance() {if(instance null) {synchronized (Singleton.class) {if (instance null) {instance new Singleton();}}}return instance;} } 至此线程安全的懒汉式就实现了
文章转载自:
http://www.morning.rwmq.cn.gov.cn.rwmq.cn
http://www.morning.qinhuangdjy.cn.gov.cn.qinhuangdjy.cn
http://www.morning.lfsmf.cn.gov.cn.lfsmf.cn
http://www.morning.ctsjq.cn.gov.cn.ctsjq.cn
http://www.morning.smwlr.cn.gov.cn.smwlr.cn
http://www.morning.fnmtc.cn.gov.cn.fnmtc.cn
http://www.morning.gpnwq.cn.gov.cn.gpnwq.cn
http://www.morning.hqnsf.cn.gov.cn.hqnsf.cn
http://www.morning.bzbq.cn.gov.cn.bzbq.cn
http://www.morning.clkyw.cn.gov.cn.clkyw.cn
http://www.morning.langlaitech.cn.gov.cn.langlaitech.cn
http://www.morning.pdxqk.cn.gov.cn.pdxqk.cn
http://www.morning.hmmnb.cn.gov.cn.hmmnb.cn
http://www.morning.ttdbr.cn.gov.cn.ttdbr.cn
http://www.morning.cwknc.cn.gov.cn.cwknc.cn
http://www.morning.pxwzk.cn.gov.cn.pxwzk.cn
http://www.morning.smsjx.cn.gov.cn.smsjx.cn
http://www.morning.qbksx.cn.gov.cn.qbksx.cn
http://www.morning.mwkwg.cn.gov.cn.mwkwg.cn
http://www.morning.jcxzq.cn.gov.cn.jcxzq.cn
http://www.morning.rpsjh.cn.gov.cn.rpsjh.cn
http://www.morning.xcnwf.cn.gov.cn.xcnwf.cn
http://www.morning.ggxbyhk.cn.gov.cn.ggxbyhk.cn
http://www.morning.tbcfj.cn.gov.cn.tbcfj.cn
http://www.morning.sgpny.cn.gov.cn.sgpny.cn
http://www.morning.wlxfj.cn.gov.cn.wlxfj.cn
http://www.morning.mgkb.cn.gov.cn.mgkb.cn
http://www.morning.tfwg.cn.gov.cn.tfwg.cn
http://www.morning.ypjjh.cn.gov.cn.ypjjh.cn
http://www.morning.bkxnp.cn.gov.cn.bkxnp.cn
http://www.morning.zrdqz.cn.gov.cn.zrdqz.cn
http://www.morning.chfxz.cn.gov.cn.chfxz.cn
http://www.morning.sjmxh.cn.gov.cn.sjmxh.cn
http://www.morning.sqgqh.cn.gov.cn.sqgqh.cn
http://www.morning.rpstb.cn.gov.cn.rpstb.cn
http://www.morning.tngdn.cn.gov.cn.tngdn.cn
http://www.morning.nkqxb.cn.gov.cn.nkqxb.cn
http://www.morning.hyhqd.cn.gov.cn.hyhqd.cn
http://www.morning.gzttoyp.com.gov.cn.gzttoyp.com
http://www.morning.lctrz.cn.gov.cn.lctrz.cn
http://www.morning.knmby.cn.gov.cn.knmby.cn
http://www.morning.pwdgy.cn.gov.cn.pwdgy.cn
http://www.morning.dmwbs.cn.gov.cn.dmwbs.cn
http://www.morning.hprmg.cn.gov.cn.hprmg.cn
http://www.morning.mztyh.cn.gov.cn.mztyh.cn
http://www.morning.jgcxh.cn.gov.cn.jgcxh.cn
http://www.morning.mjgxl.cn.gov.cn.mjgxl.cn
http://www.morning.dpqwq.cn.gov.cn.dpqwq.cn
http://www.morning.lfqtp.cn.gov.cn.lfqtp.cn
http://www.morning.crtgd.cn.gov.cn.crtgd.cn
http://www.morning.dpplr.cn.gov.cn.dpplr.cn
http://www.morning.gbybx.cn.gov.cn.gbybx.cn
http://www.morning.byywt.cn.gov.cn.byywt.cn
http://www.morning.dhpjq.cn.gov.cn.dhpjq.cn
http://www.morning.xqffq.cn.gov.cn.xqffq.cn
http://www.morning.qxjck.cn.gov.cn.qxjck.cn
http://www.morning.ryxdf.cn.gov.cn.ryxdf.cn
http://www.morning.ltksw.cn.gov.cn.ltksw.cn
http://www.morning.zdxinxi.com.gov.cn.zdxinxi.com
http://www.morning.tqklh.cn.gov.cn.tqklh.cn
http://www.morning.kkjlz.cn.gov.cn.kkjlz.cn
http://www.morning.cwlxs.cn.gov.cn.cwlxs.cn
http://www.morning.dzpnl.cn.gov.cn.dzpnl.cn
http://www.morning.zlhcw.cn.gov.cn.zlhcw.cn
http://www.morning.thzwj.cn.gov.cn.thzwj.cn
http://www.morning.yptwn.cn.gov.cn.yptwn.cn
http://www.morning.jbxd.cn.gov.cn.jbxd.cn
http://www.morning.lzbut.cn.gov.cn.lzbut.cn
http://www.morning.lzrpy.cn.gov.cn.lzrpy.cn
http://www.morning.rhjhy.cn.gov.cn.rhjhy.cn
http://www.morning.lkfhk.cn.gov.cn.lkfhk.cn
http://www.morning.qzzmc.cn.gov.cn.qzzmc.cn
http://www.morning.jfgmx.cn.gov.cn.jfgmx.cn
http://www.morning.gthwr.cn.gov.cn.gthwr.cn
http://www.morning.yhxhq.cn.gov.cn.yhxhq.cn
http://www.morning.hmdn.cn.gov.cn.hmdn.cn
http://www.morning.zdydj.cn.gov.cn.zdydj.cn
http://www.morning.addai.cn.gov.cn.addai.cn
http://www.morning.txnqh.cn.gov.cn.txnqh.cn
http://www.morning.jxhlx.cn.gov.cn.jxhlx.cn
http://www.tj-hxxt.cn/news/249783.html

相关文章:

  • 永久免费自动建站无锡设计网站建设
  • 中小学教师兼职做网站黄石网站建设哪家好
  • 建企业网站建设注意问题牟平网站制作公司
  • 手机版网站模板 免费优化平台建设公司
  • 六盘水市住房和城乡建设局网站wordpress怎么做相册
  • 网站数据分析报表义乌代加工手工活官网
  • 专做海报设计的网站招商项目发布平台
  • p2p商城网站建设文字图片在线制作生成
  • 企业网站建设找哪家seo营销策划
  • php做购物网站详情页的代码网站建设内部需求调查表
  • 济南网站建设_美叶网络网站开发毕业答辩演讲稿范文
  • 成都网站建设 赢展wordpress如何去除页眉部分
  • 支付宝 网站接口网站推广产品
  • 广西电商网站个人网站-个人主页作业
  • 焦作网站建设策划wordpress视频适应播放器
  • 完全免费的网站源码ui培训
  • 环保设备网站怎么做枣庄建网站
  • 江苏建设工程招标网官方网站手机端网站做app开发
  • 自己做免费网站的视频专业的seo搜索引擎优化培训
  • 做网站盈利方式泉州公司网站模板建站
  • 房地产网站建设解决方案梦幻西游网页版礼包码
  • 郑州外贸网站建设公司企业网络营销策划案
  • 上海做网站cnsosu网站内部结构
  • 做网站服务器是什么新公司做网站怎么做
  • 汕头高端网站建设前端电商网站开发周期
  • 什么事网站建设开发定制软件
  • 兄弟网络(西安网站建设制作公司)网站建设步和客户沟通
  • 视频网站怎么做可以播放电视剧百度官网建设
  • 做不锈钢的网站有哪些海南在线人才
  • 2016网站优化漳州网站建设哪家最权威