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

Java多線程下的單例模式參考

 更新時間:2016年06月14日 11:19:38   作者:kingxss  
這篇文章主要演示多線程下的單例模式,分別演示了lock和synchronized兩種方案,希望能給大家做一個參考。

單例有多種的寫法,本例是懶漢式單例的一種寫法。在高并發(fā)環(huán)境下需要注意的是:

1.單例在并發(fā)訪問并調用其相應的getInstance方法的時候也會造成創(chuàng)建多個實例對象,加鎖是必要的。

2.使用synchronized是比較好的解決方案,優(yōu)點是代碼簡潔,缺點是在拋出異常的時候不能處理維護使系統(tǒng)處于良好狀態(tài)。

3.顯示的lock設定是良好的解決方案。

使用lock的代碼如下:

package demo; 
 
import java.util.concurrent.locks.Lock; 
import java.util.concurrent.locks.ReentrantLock; 
 
/** 
 * 參考使用 
 * @author Watson_Xu 
 * @date 2012-1-8 下午04:31:09 
 */ 
public final class SingletonContext { 
  private static SingletonContext sc = null; 
  private SingletonContext() { 
   
  } 
   
  private static Lock lock = new ReentrantLock(); 
  public static SingletonContext getInstance() { 
    if(sc == null) { 
      lock.lock(); 
      if(sc == null) { 
        try{ 
          sc = new SingletonContext(); 
        } finally { 
          lock.unlock(); 
        } 
      } 
    } 
    return sc; 
  } 
}

使用synchronized的時候代碼如下:

package demo; 
 
/** 
 * 參考使用 
 * 
 * @author Watson_Xu 
 * @date 2012-1-8 下午04:31:09 
 */ 
public final class SingletonContext { 
  private static SingletonContext sc = null; 
 
  private SingletonContext() { 
 
  } 
 
  public static synchronized SingletonContext getInstance() { 
    if(null == sc) { 
      sc = new SingletonContext(); 
    } 
    return new SingletonContext(); 
  } 
} 

查看更多Java的語法,大家可以關注:《Thinking in Java 中文手冊》、《JDK 1.7 參考手冊官方英文版》、《JDK 1.6 API java 中文參考手冊》、《JDK 1.5 API java 中文參考手冊》,也希望大家多多支持腳本之家。

相關文章

  • spring異步service中處理線程數(shù)限制詳解

    spring異步service中處理線程數(shù)限制詳解

    這篇文章主要給大家介紹了關于spring異步service中處理線程數(shù)限制的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用spring具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-09-09
  • SpringBoot?Security權限控制自定義failureHandler實例

    SpringBoot?Security權限控制自定義failureHandler實例

    這篇文章主要為大家介紹了SpringBoot?Security權限控制自定義failureHandler實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • 詳解Javaee Dao層的抽取

    詳解Javaee Dao層的抽取

    這篇文章主要介紹了詳解Javaee Dao層的抽取,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • Java異常處理原理與用法實例分析

    Java異常處理原理與用法實例分析

    這篇文章主要介紹了Java異常處理原理與用法,結合實例形式分析了Java異常處理相關概念、原理、用法及操作注意事項,需要的朋友可以參考下
    2020-04-04
  • 關于Spring框架中異常處理情況淺析

    關于Spring框架中異常處理情況淺析

    最近學習Spring時,認識到Spring異常處理的強大,這篇文章主要給大家介紹了關于Spring框架中異常處理情況的相關資料,通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-08-08
  • SpringBoot整合SpringTask實現(xiàn)定時任務的流程

    SpringBoot整合SpringTask實現(xiàn)定時任務的流程

    這篇文章主要介紹了SpringBoot整合SpringTask實現(xiàn)定時任務的流程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Spring Boot全局異常處理解析

    Spring Boot全局異常處理解析

    這篇文章主要為大家詳細介紹了Spring Boot全局異常處理的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • springboot訪問請求404的原因及解決辦法

    springboot訪問請求404的原因及解決辦法

    在使用Spring Boot開發(fā)應用程序時,有時可能會遇到訪問請求出現(xiàn)404錯誤的情況,即請求的資源未找到,這篇文章主要給大家介紹了關于springboot訪問請求404的原因及解決辦法,需要的朋友可以參考下
    2023-09-09
  • Spring中的事務控制知識總結

    Spring中的事務控制知識總結

    我們講了轉賬方法存在著事務問題,當在業(yè)務層方法更新轉入賬戶時發(fā)現(xiàn)異常,更新收款方賬戶則會出錯.當時是通過自定義事務管理器進行整體事務的處理.其實Spring 提供了業(yè)務層的事務處理解決方案,并且 Spring 的事務控制都是基于 AOP 的,需要的朋友可以參考下
    2021-06-06
  • idea新建Springboot項目,設置默認maven和jdk版本方式

    idea新建Springboot項目,設置默認maven和jdk版本方式

    這篇文章主要介紹了idea新建Springboot項目,設置默認maven和jdk版本方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12

最新評論