多執行緒環境下單例模式的兩種實現方法

2021-07-31 08:35:23 字數 516 閱讀 1186

//單例一

public

class singleton;

public

static synchronized singleton getinstance()

return instance;

}}

這種寫法雖然是多執行緒安全的,但是每次使用getinstance方法都需要進行同步,因此,效率比較低。

//單例二

public

class singleton

public

static singleton getsingleton()}}

return singleton;

}}

這種方法會首先判斷singleton是否為空,這個物件一旦被建立,

在後期的呼叫過程中就不會進入同步的**,因此,有更高的效率

多執行緒環境下單例模式的一種實現方式

最近在看dubbo的源 發現dubbo類extensionloader中有一段 private static final concurrentmap,extensionloader extension loaders new concurrenthashmap,extensionloader pub...

多執行緒情況下單例模式的實現

單例模式是一種設計模式,分為懶漢式和餓漢式兩種實現方式 public class singleton public static singleton getinstance 優點 這種寫法比較簡單,就是在類裝載的時候就完成例項化。避免了執行緒同步問題。缺點 在類裝載的時候就完成例項化,沒有達到laz...

多執行緒兩種實現方式

public class testthread1 extends thread public static void main string args 執行結果如下 可見執行緒由cpu隨機排程的。public class testthread2 extends thread override pub...