JAVA单例规划形式Single环球 - 牛牛娱乐

JAVA单例规划形式Single环球

2019-02-13 11:40:42 | 作者: 紫雪 | 标签: 懒汉,线程,问题 | 浏览: 2974

* 懒汉式适用于实例的推迟加载假如多线程拜访,简单呈现安全问题能够经过加同步锁处理 * 加锁的功率问题需求讲究 * 推迟加载的单例规划形式懒汉式 //饿汉式 class Single1 private static final Single1 s = new Single1(); private Single1(){} public static Single1 getInstance(){ return s; //懒汉式有问题的 * 在多线程拜访进程中会发生安全隐患 // class Single2{ // private static Single2 s = null; // private Single2(){} // public static Single2 getInstance(){ // if(snull){ // //线程进入A堵塞 // //线程进入B堵塞 // //A唤醒new一次 // //B唤醒new一次 // // 单例失效 // s = new Single2(); // return s; //安全处理方案 // class Single2{ // private static Single2 s = null; // private Single2(){} // //问题多线程,每个线程都想获取实例例都要判别一次锁懒汉式加锁会影响程序功率 // //B不能进入 // public static synchronized Single2 getInstance(){ // if(snull){ // //A线程进入堵塞有同步锁 // s = new Single2(); // return s; //懒汉式晋级 class Single2{ private static Single2 s = null; private Single2(){} * 经过两层判别以进步懒汉式的功率 public static Single2 getInstance(){ if(snull){ //2.B线程进入被锁挡住,中止 synchronized(Single2.class) //4.B进入不满足null return s if(snull){ //1.A线程进入堵塞 //3.A唤醒履行结束 s = new Single2(); return s;
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表牛牛娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章