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

网站怎样做淘宝客做个类似淘宝的网站怎么做

网站怎样做淘宝客,做个类似淘宝的网站怎么做,宁波网易企业邮箱,制作网址怎么收费所谓的单例模式就是保证某个类在程序中只有一个对象 一、如何控制只产生一个对象#xff1f; 1.构造方法私有化#xff08;保证对象的产生个数#xff09; 创建类的对象#xff0c;要通过构造方法产生对象 构造方法若是public权限#xff0c;对于类的外部#xff0c;可…所谓的单例模式就是保证某个类在程序中只有一个对象 一、如何控制只产生一个对象 1.构造方法私有化保证对象的产生个数 创建类的对象要通过构造方法产生对象 构造方法若是public权限对于类的外部可以随意创建对象无法控制对象个数 构造方法私有化这样类的外部就彻底无法产生对象一个对象都没有。 2.单例类的内部提供这个唯一的对象static 构造方法私有化后对于类的外部而言就一个对象都没有了。因此要在这个类的内部构造出这个唯一的对象只调用一次构造方法即可这个单例对象不能是类的成员属性因为成员变量必须通过对象来访问但是类的外部根本无法产生对象矛盾因此这个对象必须使用static关键字修饰静态变量不依赖类的对象 3.单例类提供返回这个唯一对象的静态方法供外部使用 二、饿汉式单例 饿汉式单例模式是天然的线程安全的。类加载时就创建了这个唯一的对象 /*** 饿汉式单例(类加载就产生这个唯一的对象也不管外部是否调用该对象)。饥不择食这个类一加载就把惟一的这个对象产生了* 我也不管外部到底用不用这个对象只要这个类加载到JVM唯一对象就会产生**/ public class SingleTon {// 惟一的这一个对象private static SingleTon singleTon new SingleTon();private SingleTon() {}// 调用此方法时singleTon对象已经产生过了多线程场景下取回的是同一个单例对象public static SingleTon getSingleton() {return singleTon;} } 三、懒汉式单例 懒汉式单例只有第一次调用getSingleTon表示外部需要获取这个单例对象时才产生对象 public class LazySingleTon {private static LazySingleTon singleTon ;private LazySingleTon(){}public LazySingleTon getSingleTon(){if (singleTon null){singleTon new LazySingleTon();}return singleTon;} }多线程场景下会产生线程安全问题不能确保只有一个对象产生  在这个场景下三个线程并发调用get方法此时三个 线程看到的singleTon 都为null因此每个线程都创建了一个对象 四、解决懒汉式单例的线程安全问题 1.静态方法上加锁 public synchronized static LazySingleTon getSingleTon(){if (singleTon null){singleTon new LazySingleTon();}return singleTon;} 在方法上上锁表示同一时间只有一个线程能进入此方法其他线程想要进入此方法都等待获取锁成功的线程释放锁。此时getSingleTon的内部都是单线程操作锁的粒度太粗。 2.double-check双重加锁 private volatile static LazySingleTon singleTon ;private LazySingleTon(){}public static LazySingleTon getSingleTon(){if (singleTon null){synchronized (LazySingleTon.class){if (singleTon null){singleTon new LazySingleTon();}}}return singleTon;} volatile的作用内存屏障可见性 此时有t1,t2,t3三个线程t1首先获取到了锁开始执行new操作虽然还没完全结束但此时的singleTon ! null对于刚开始执行代码的t2,t3来说它们看到singleTon null 直接返回了但是返回后的单例对象是一个尚未完全初始化的对象 此时采用volatile关键字修饰单例对象new操作有着一堵墙其它线程要能执行到return语句JVM一定保证了new操作完全结束了之后才会执行return语句。 double-check:防止其他线程恢复执行后多次创建单例对象 当t1先进入同步代码块后t2,t3卡在获取所得位置 t1产生对象后释放锁 t2,t3还是从获取锁的位置继续执行在他们的工作内存中singleTon null  t2,t3就会再次new对象。
http://wiki.neutronadmin.com/news/22171/

相关文章:

  • 网站根域名是什么做算命类网站违法吗?
  • 建设俄语2p2网站上海今天最新发布会
  • 自己 做网站企业网络的规划与设计
  • 做自己的网站怎么赚钱wordpress头像网站
  • 谷歌云做网站长安网站建设推广公司
  • 重庆新闻第一眼搜索引擎优化策略不包括
  • 做壁画的网站拓者设计吧室内设计官网案例
  • 个人网站怎样申请耐看舒适的网页设计欣赏
  • 音乐建设网站网站充值平台怎么做的
  • 什么网站可以查建设用地规划许可证wordpress前端获取头像
  • ps如何做ppt模板下载网站专业装修别墅
  • 聊城做网站厉害的公司做旅行社网站多少钱
  • 线上推广方案ppt关键词优化seo费用
  • 莱芜网站建设哪里有女性门户网站织梦模板
  • wordpress 在线pdf河西网站建设优化seo
  • 最专业的网站建设公司哪家好天助网的网站
  • 广州建筑公司网站石狮seo
  • 买的网站模板怎么上传河北邢台房价多少钱一平方
  • 驻马店建设网站网页设计与制作论文2000字
  • 网站维护流程图wordpress pdf
  • 张家港百度网站推广网站优化哪个公司好
  • 人人设计网官方网站沈阳今天最新通知
  • 有什么专门做电子琴音乐的网站淘宝联盟优惠券网站建设
  • 网站建设标准合同书网站怎样设计网址
  • 网上做家教的网站如何进行网络营销
  • 怎么查网站建设时间公司企业网站建设教程
  • 做网站费用上海好的做网站的
  • 义乌制作网站开发本地wordpress后台很慢
  • 网站设计在线培训wordpress图片上传卡住
  • 网站备案过期赣州人事人才网