麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Java > 正文

五種單件模式之Singleton的實現(xiàn)方法詳解

2019-11-26 16:03:53
字體:
供稿:網(wǎng)友
最基本的實現(xiàn)方式如下:
復(fù)制代碼 代碼如下:

package singletonpattern;
public class Singleton1 {
 private static Singleton1 uniqueInstance;
 private Singleton1() {
 }
 public static Singleton1 getInstance() {
  if (uniqueInstance == null) {
   uniqueInstance = new Singleton1();
  }
  return uniqueInstance;
 }
}

但是以上方法并沒有考慮到多線程的情況,如果是多線程,仍有可能創(chuàng)建多個實例,因此可以通過加鎖和同步來實現(xiàn)多線程的單件模式,同步的缺點是效率大大降低:
復(fù)制代碼 代碼如下:

package singletonpattern;
public class Singleton2 {
 private static Singleton2 uniqueInstance;
 private Singleton2() {
 }
 public static synchronized Singleton2 getInstance() {
  if (uniqueInstance == null) {
   uniqueInstance = new Singleton2();
  }
  return uniqueInstance;
 }
}

還有一種方法是自動初始化,這樣肯定不會造成多個實例,但是如果實際沒有用到的話也會初始化實例,浪費了資源:
復(fù)制代碼 代碼如下:

package singletonpattern;
public class Singleton3 {
 private static Singleton3 uniqueInstance = new Singleton3();
 private Singleton3() {
 }
 public static Singleton3 getInstance() {
  return uniqueInstance;
 }
}

使用內(nèi)部類的方法可以解決過早初始化的問題:
復(fù)制代碼 代碼如下:

public class Singleton5 {

 private Singleton5(){

 }

 public static Singleton5 getInstance(){
  return Nested.instance;
 }

 static class Nested{
  static Singleton5 instance = new Singleton5();
 }
}

用于多線程的改進(jìn)方法如下:
復(fù)制代碼 代碼如下:

package singletonpattern;
public class Singleton4 {
 private volatile static Singleton4 uniqueInstance;
 private Singleton4() {
 }
 public static Singleton4 getInstance() {
  if (uniqueInstance == null) {
   synchronized (Singleton4.class) {
    if (uniqueInstance == null) {
     uniqueInstance = new Singleton4();
    }
   }
  }
  return uniqueInstance;
 }
}

使用了雙重保險,雙重檢查,當(dāng)沒有實例化的時候才進(jìn)行加鎖和同步。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 亚洲第一成人在线视频 | 在线播放免费视频 | 港台三级在线观看 | 一日本道久久久精品国产 | 成人在线不卡 | 成人综合区一区 | 午夜精品视频在线 | 欧美成人午夜影院 | 91亚洲免费视频 | 亚洲国产精品久久久久久久 | 黄色免费不卡视频 | 中国洗澡偷拍在线播放 | 护士hd欧美free性xxxx | 国产精品久久久麻豆 | 911色_911色sss主站色播 | 亚洲射逼 | 全黄性性激高免费视频 | a视频网站 | 亚洲网视频| 亚洲第一视频 | 法国性经典xxxhd | 欧美一级黄视频 | 免费毛片在线视频 | 久久久婷婷一区二区三区不卡 | 女人叉开腿让男人桶 | 久久精品久久精品久久精品 | 国产精品99一区二区 | wwwxxx免费视频 | 91久久九色 | 欧美一级片 在线播放 | 天天色宗合 | 激情大乳女做爰办公室韩国 | 蜜桃视频在线免费播放 | 黄色片视频观看 | 羞羞色院91精品网站 | 美女在线视频一区二区 | 亚洲激情91| 2019天天干夜夜操 | 97人操| 欧美在线观看黄色 | 亚洲欧美一区二区三区在线观看 |