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

資訊專欄INFORMATION COLUMN

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

TesterHome / 2102人閱讀

摘要:使用雙檢查機制來實現多線程環境中的延遲加載單例設計模式。類主要負責日期的轉換與格式化,但在多線程環境中,使用此類容易造成數據轉換及處理的不準確,因為類并不是線程安全的。

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

package com.zxf.demo.singleton_0;

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

}

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

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關鍵字得到相同的實例對象,,但此方法的運行效率非常低下,是同步運行的,下一個線程想要取得對象,則必須等上一個線程釋放鎖之后,才可以繼續執行。

使用DCL雙檢查機制來實現多線程環境中的延遲加載單例設計模式。

NEW狀態是線程實例化后還從未執行start()方法時的狀態,而runnable狀態是線程進入運行的狀態,terminated是線程被銷毀時的狀態。

執行sleep()方法后線程的狀態是timed_waiting。BLOCKED狀態出現在某一個線程在等待鎖的時候。

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

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

所謂的1級關聯就是父對象中有子對象,但不創建子孫對象。

類SimpleDateFormat主要負責日期的轉換與格式化,但在多線程環境中,使用此類容易造成數據轉換及處理的不準確,因為SimpleDateFormat類并不是線程安全的。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/68230.html

相關文章

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

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

    Winer 評論0 收藏0
  • Java面試 32個核心必考點完全解析

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

    JiaXinYi 評論0 收藏0
  • 你和阿里資深架構師之間,差的不僅僅是年齡(進階必看)

    摘要:導讀閱讀本文需要有足夠的時間,筆者會由淺到深帶你一步一步了解一個資深架構師所要掌握的各類知識點,你也可以按照文章中所列的知識體系對比自身,對自己進行查漏補缺,覺得本文對你有幫助的話,可以點贊關注一下。目錄一基礎篇二進階篇三高級篇四架構篇五擴 導讀:閱讀本文需要有足夠的時間,筆者會由淺到深帶你一步一步了解一個資深架構師所要掌握的各類知識點,你也可以按照文章中所列的知識體系對比自身,對自己...

    huaixiaoz 評論0 收藏0
  • 設計模式 單例模式

    摘要:單例模式確保一個類只有一個實例,而且自動實例化并向整個系統提供這個實例。將構造函數設置為私有的,防止外界出該類的實例,從而失去了單例的意義。這種實現的單例模式是最簡單的,同時多個線程操作該單例時也不會有問題。這就違反了單例模式。 單例模式 確保一個類只有一個實例,而且自動實例化并向整個系統提供這個實例。 實現 餓漢式 很簡單。 將構造函數設置為私有的,防止外界new出該類的實例,從而...

    Sourcelink 評論0 收藏0

發表評論

0條評論

TesterHome

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<