有關單例模式賦值失敗的問題

2021-08-21 02:41:55 字數 419 閱讀 5647

今天在使用單例模式賦值時,出現了賦值失敗的問題:

user user=new gson().fromjson(u, user.class);

test.getinstance().user=user;

第二句得到為null

test.class

public class test 

public static test getinstance()

}

以前我也這樣用過,但是沒有出現賦值失敗的情況,上述為懶漢模式,當我把懶漢改為餓漢時賦值成功,或者懶漢中對user例項化,也能賦值成功。

暫時不懂賦值失敗的原因,記錄一下這個bug。

更新應該是與懶漢模式的缺陷有關,沒有加鎖,可能出現了同時讀寫的操作

單例模式的問題

單例模式會產生執行緒不安全嗎?哪種模式會?如何解決?效率會受到影響嗎?如何提公升效率?答 會 懶漢式加同步 效率會受到影響 在同步 塊外賣你加上if判斷 public static singledemo getinstance return sd 假設多執行緒時,有t1和t2兩個執行緒。因為剛開始的...

單例模式的問題

單例模式三要素 構造方法私有化 靜態屬性指向例項 public static的 getinstance方法,返回第二步的靜態屬性 餓漢式單例模式 giantdragon 應該只有乙隻,通過私有化其構造方法,使得外部無法通過new 得到新的例項。giantdragon 提供了乙個public stat...

Python單例模式的問題

python利用新式類可以使用單例模式,重複生成物件,雖然只會返回同乙個物件,但是其初始化函式 init 會反覆被呼叫,對於效能會產生不利的影響,如果在 init 函式中放置執行初始化的 那麼這些 也會被反覆執行,如果這些 還涉及到對外部介面的訪問,那麼會拖慢系統的執行時間。正確的做法 1.將資料 ...