国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java 多線程編程核心技術(shù)6—單例模式與多線程

TesterHome / 2097人閱讀

摘要:使用雙檢查機(jī)制來實(shí)現(xiàn)多線程環(huán)境中的延遲加載單例設(shè)計(jì)模式。類主要負(fù)責(zé)日期的轉(zhuǎn)換與格式化,但在多線程環(huán)境中,使用此類容易造成數(shù)據(jù)轉(zhuǎn)換及處理的不準(zhǔn)確,因?yàn)轭惒⒉皇蔷€程安全的。

立即加載就是使用類的時(shí)候已經(jīng)將對(duì)象創(chuàng)建完畢,常見的實(shí)現(xiàn)辦法就是直接new實(shí)例化。而立即加載從中文的語(yǔ)境來看,有“著急”、“急迫”的含義,所以也稱為“餓漢模式”。

package com.zxf.demo.singleton_0;

public class MyObject {
    
    private static MyObject myobject = new MyObject();
    
    private MyObject(){
        
    }
    
    public static MyObject getInstatance(){
        //立即加載/餓漢模式
        //缺點(diǎn)是不能有其他實(shí)例變量
        //因?yàn)間etInstance()方法沒有同步,所以有可能出現(xiàn)非線程安全問題
        return myobject;
    }

}

延遲加載就是在調(diào)用get()方法時(shí)實(shí)例才被創(chuàng)建,常見的實(shí)現(xiàn)辦法就是在get()方法中進(jìn)行new實(shí)例化。而延遲加載從中文的語(yǔ)境來看,是“緩慢”、“不急迫”的含義,所以也稱為“懶漢模式”。

package com.zxf.demo.singleton_1;

public class MyObject {
    
    private static MyObject myobject;
    
    private MyObject(){
        
    }
    
    public static MyObject getInstatance(){
        
        if(myobject != null){
        }else{
            myobject = new MyObject();
        }
        
        return myobject;
    }

}

此方法加入同步synchronized關(guān)鍵字得到相同的實(shí)例對(duì)象,,但此方法的運(yùn)行效率非常低下,是同步運(yùn)行的,下一個(gè)線程想要取得對(duì)象,則必須等上一個(gè)線程釋放鎖之后,才可以繼續(xù)執(zhí)行。

使用DCL雙檢查機(jī)制來實(shí)現(xiàn)多線程環(huán)境中的延遲加載單例設(shè)計(jì)模式。

NEW狀態(tài)是線程實(shí)例化后還從未執(zhí)行start()方法時(shí)的狀態(tài),而runnable狀態(tài)是線程進(jìn)入運(yùn)行的狀態(tài),terminated是線程被銷毀時(shí)的狀態(tài)。

執(zhí)行sleep()方法后線程的狀態(tài)是timed_waiting。BLOCKED狀態(tài)出現(xiàn)在某一個(gè)線程在等待鎖的時(shí)候。

執(zhí)行wait()方法后線程的狀態(tài)枚舉值就是waiting。

線程組的作用是,可以批量的管理線程或者線程對(duì)象,有效地對(duì)線程活線程組對(duì)象進(jìn)行組織。

所謂的1級(jí)關(guān)聯(lián)就是父對(duì)象中有子對(duì)象,但不創(chuàng)建子孫對(duì)象。

類SimpleDateFormat主要負(fù)責(zé)日期的轉(zhuǎn)換與格式化,但在多線程環(huán)境中,使用此類容易造成數(shù)據(jù)轉(zhuǎn)換及處理的不準(zhǔn)確,因?yàn)镾impleDateFormat類并不是線程安全的。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/68230.html

相關(guān)文章

  • Java 線程核心技術(shù)梳理(附源碼)

    摘要:本文對(duì)多線程基礎(chǔ)知識(shí)進(jìn)行梳理,主要包括多線程的基本使用,對(duì)象及變量的并發(fā)訪問,線程間通信,的使用,定時(shí)器,單例模式,以及線程狀態(tài)與線程組。源碼采用構(gòu)建,多線程這部分源碼位于模塊中。通知可能等待該對(duì)象的對(duì)象鎖的其他線程。 本文對(duì)多線程基礎(chǔ)知識(shí)進(jìn)行梳理,主要包括多線程的基本使用,對(duì)象及變量的并發(fā)訪問,線程間通信,lock的使用,定時(shí)器,單例模式,以及線程狀態(tài)與線程組。 寫在前面 花了一周時(shí)...

    Winer 評(píng)論0 收藏0
  • Java面試 32個(gè)核心必考點(diǎn)完全解析

    摘要:如問到是否使用某框架,實(shí)際是是問該框架的使用場(chǎng)景,有什么特點(diǎn),和同類可框架對(duì)比一系列的問題。這兩個(gè)方向的區(qū)分點(diǎn)在于工作方向的側(cè)重點(diǎn)不同。 [TOC] 這是一份來自嗶哩嗶哩的Java面試Java面試 32個(gè)核心必考點(diǎn)完全解析(完) 課程預(yù)習(xí) 1.1 課程內(nèi)容分為三個(gè)模塊 基礎(chǔ)模塊: 技術(shù)崗位與面試 計(jì)算機(jī)基礎(chǔ) JVM原理 多線程 設(shè)計(jì)模式 數(shù)據(jù)結(jié)構(gòu)與算法 應(yīng)用模塊: 常用工具集 ...

    JiaXinYi 評(píng)論0 收藏0
  • 你和阿里資深架構(gòu)師之間,差的不僅僅是年齡(進(jìn)階必看)

    摘要:導(dǎo)讀閱讀本文需要有足夠的時(shí)間,筆者會(huì)由淺到深帶你一步一步了解一個(gè)資深架構(gòu)師所要掌握的各類知識(shí)點(diǎn),你也可以按照文章中所列的知識(shí)體系對(duì)比自身,對(duì)自己進(jìn)行查漏補(bǔ)缺,覺得本文對(duì)你有幫助的話,可以點(diǎn)贊關(guān)注一下。目錄一基礎(chǔ)篇二進(jìn)階篇三高級(jí)篇四架構(gòu)篇五擴(kuò) 導(dǎo)讀:閱讀本文需要有足夠的時(shí)間,筆者會(huì)由淺到深帶你一步一步了解一個(gè)資深架構(gòu)師所要掌握的各類知識(shí)點(diǎn),你也可以按照文章中所列的知識(shí)體系對(duì)比自身,對(duì)自己...

    huaixiaoz 評(píng)論0 收藏0
  • 設(shè)計(jì)模式 單例模式

    摘要:?jiǎn)卫J酱_保一個(gè)類只有一個(gè)實(shí)例,而且自動(dòng)實(shí)例化并向整個(gè)系統(tǒng)提供這個(gè)實(shí)例。將構(gòu)造函數(shù)設(shè)置為私有的,防止外界出該類的實(shí)例,從而失去了單例的意義。這種實(shí)現(xiàn)的單例模式是最簡(jiǎn)單的,同時(shí)多個(gè)線程操作該單例時(shí)也不會(huì)有問題。這就違反了單例模式。 單例模式 確保一個(gè)類只有一個(gè)實(shí)例,而且自動(dòng)實(shí)例化并向整個(gè)系統(tǒng)提供這個(gè)實(shí)例。 實(shí)現(xiàn) 餓漢式 很簡(jiǎn)單。 將構(gòu)造函數(shù)設(shè)置為私有的,防止外界new出該類的實(shí)例,從而...

    Sourcelink 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<