<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>
            java語言

            多線程的餓漢式和懶漢式

            時間:2025-02-20 06:21:26 java語言 我要投稿
            • 相關推薦

            多線程的餓漢式和懶漢式

              導語:多線程的單例設計模式保證某個類中內存中只有一個對象,分為餓漢式和懶漢式,讓我們了解一下吧!

              (1)餓漢式:

              class Single

              {

              private Single(){}//將構造函數私有化,不讓別的類建立該類對象

              private static final Single s=new Single();//自己建立一個對象

              public static Single getInstance()//提供一個公共訪問方式

              {

              return s;

              }

              }

              (2)懶漢式:

              class Single

              {

              private Single(){}

              private static Single s;

              public static Single getInstance()

              {

              if(s==null)

              s=new Single();

              return s;

              }

              }

              餓漢式和懶漢式的區別:

              **

              餓漢式是類一加載進內存就創建好了對象;

              懶漢式則是類加載進內存的時候,對象還沒有存在,只有調用了getInstance()方法時,對象才開始創建。

              **

              懶漢式是延遲加載,如果多個線程同時操作懶漢式時就有可能出現線程安全問題,解決線程安全問題

              可以加同步來解決。但是加了同步之后,每一次都要比較鎖,效率就變慢了,

              所以可以加雙重判斷來提高程序效率。

              如將上述懶漢式的Instance函數改成同步:

              public static Single getInstance()

              {

              if(s==null)

              {

              synchronized(Single.class)

              {

              if(s==null)

              s=new Single();

              }

              }

              return s;

              }


            【多線程的餓漢式和懶漢式】相關文章:

            java多線程的同步和異步09-05

            Java多線程的定義狀態和屬性08-23

            《除法豎式》教案07-06

            參與式教學總結10-12

            響應式網頁設計10-31

            什么是響應式布局08-19

            初中數學教案《多項式與多項式相乘》09-26

            《多項式除以單項式》最新教學設計08-09

            初一數學用字母表示數一次式和一次式的值的試題10-28

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看