国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

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

2019-11-26 14:11:56
字體:
供稿:網(wǎng)友

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

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

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

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

使用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的時(shí)候代碼如下:

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的語法,大家可以關(guān)注:《Thinking in Java 中文手冊》、《JDK 1.7 參考手冊官方英文版》、《JDK 1.6 API java 中文參考手冊》、《JDK 1.5 API java 中文參考手冊》,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 夹江县| 拉萨市| 梅河口市| 全椒县| 正定县| 万安县| 沅江市| 大余县| 三台县| 霍城县| 临泉县| 凤凰县| 大邑县| 合阳县| 安远县| 高碑店市| 新平| 红桥区| 云南省| 新郑市| 清河县| 滕州市| 固始县| 仁怀市| 玉田县| 东平县| 洪雅县| 揭东县| 梁河县| 当阳市| 庐江县| 文成县| 拉孜县| 墨竹工卡县| 湖南省| 虞城县| 富平县| 当雄县| 云浮市| 十堰市| 安化县|