欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java多線程中的單例模式兩種實現(xiàn)方式

 更新時間:2017年04月30日 11:33:51   投稿:lqh  
這篇文章主要介紹了Java多線程中的單例模式兩種實現(xiàn)方式的相關資料,需要的朋友可以參考下

Java多線程中的單例模式

一、在多線程環(huán)境下創(chuàng)建單例

方式一:

package com.ietree.multithread.sync;

public class Singletion {
  
  private static class InnerSingletion {
    private static Singletion single = new Singletion();
  }

  public static Singletion getInstance() {
    return InnerSingletion.single;
  }
}

方式二:

package com.ietree.multithread.sync;

public class DubbleSingleton {

  private static DubbleSingleton ds;

  public static DubbleSingleton getDs() {
    if (ds == null) {
      try {
        // 模擬初始化對象的準備時間...
        Thread.sleep(3000);
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
      synchronized (DubbleSingleton.class) {
        if (ds == null) { // 這個判斷很重要,如果沒有那將不是單例,而是多例
          ds = new DubbleSingleton();
        }
      }
    }
    return ds;
  }

  public static void main(String[] args) {
    
    Thread t1 = new Thread(new Runnable() {
      @Override
      public void run() {
        System.out.println(DubbleSingleton.getDs().hashCode());
      }
    }, "t1");
    
    Thread t2 = new Thread(new Runnable() {
      @Override
      public void run() {
        System.out.println(DubbleSingleton.getDs().hashCode());
      }
    }, "t2");
    
    Thread t3 = new Thread(new Runnable() {
      @Override
      public void run() {
        System.out.println(DubbleSingleton.getDs().hashCode());
      }
    }, "t3");

    t1.start();
    t2.start();
    t3.start();
  }
}

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關文章

  • 在Java中實現(xiàn)可見性(visibility)的主要方法詳解

    在Java中實現(xiàn)可見性(visibility)的主要方法詳解

    這篇文章主要介紹了在Java中實現(xiàn)可見性(visibility)的主要方法詳解,在Java中,使用關鍵字volatile和使用鎖(如synchronized關鍵字或 java.util.concurrent包中的鎖)來確保對共享變量的修改在多線程環(huán)境中能夠正確地被其他線程所觀察到,需要的朋友可以參考下
    2023-08-08
  • maven升級版本后報錯:Blocked mirror for repositories

    maven升級版本后報錯:Blocked mirror for repositories

    本文主要介紹了maven升級版本后報錯:Blocked mirror for repositories,文中的解決方法非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-09-09
  • 深入剖析Java中的synchronized關鍵字

    深入剖析Java中的synchronized關鍵字

    在 Java 程序中,我們可以利用 synchronized 關鍵字來對程序進行加鎖,它既可以用來聲明一個 synchronized 代碼塊,也可以直接標記靜態(tài)方法或者實例方法,本文就帶大家深入了解Java中的synchronized關鍵字,感興趣的同學可以參考閱讀
    2023-06-06
  • java算法題解LeetCode30包含min函數(shù)的棧實例

    java算法題解LeetCode30包含min函數(shù)的棧實例

    這篇文章主要為大家介紹了java算法題解LeetCode30包含min函數(shù)的棧實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • java volatile案例講解

    java volatile案例講解

    這篇文章主要介紹了java volatile案例講解,本文通過講解內(nèi)存可見性,Volatile變量來去詳細分析該項概念,需要的朋友可以參考下
    2021-07-07
  • Spring Boot 自動裝配原理及 Starter 實現(xiàn)原理解析

    Spring Boot 自動裝配原理及 Starter 實現(xiàn)原理解析

    SpringBoot通過@SpringBootApplication注解簡化了依賴引入和配置,該注解包括@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan三部分,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • java連接數(shù)據(jù)庫知識點總結以及操作應用

    java連接數(shù)據(jù)庫知識點總結以及操作應用

    這篇文章主要給大家介紹了關于java連接數(shù)據(jù)庫知識點總結以及操作應用的相關資料, 當涉及到Java中數(shù)據(jù)庫數(shù)據(jù)處理時,我們可以利用強大的Java數(shù)據(jù)庫連接技術與各種數(shù)據(jù)庫進行交互,需要的朋友可以參考下
    2023-12-12
  • JPA 加鎖機制及@Version版本控制方式

    JPA 加鎖機制及@Version版本控制方式

    這篇文章主要介紹了JPA 加鎖機制及@Version版本控制方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 淺析spring定時器的使用

    淺析spring定時器的使用

    這篇文章主要介紹了淺析spring定時器的使用,幫助大家更好的理解和學習spring框架,感興趣的朋友可以了解下
    2020-10-10
  • Java ThreadLocal的詳細解釋

    Java ThreadLocal的詳細解釋

    這篇文章主要介紹了快速了解Java中ThreadLocal類,介紹了ThreadLocal 是什么,ThreadLocal的作用,ThreadLocal 原理等相關內(nèi)容,具有一定參考價值,需要的朋友可以了解下。
    2021-11-11

最新評論