文章詳情頁
python - 關于單例的線程安全問題
瀏覽:187日期:2022-07-25 18:05:33
問題描述
class Singleton(object): __instance = None def __new__(cls, *args, **kwargs):if not cls.__instance: cls.__instance = super(Singleton, cls).__new__(cls, *args, **kwargs)return cls.__instance if __name__ == ’__main__’: # 多線程中單例的使用 from threading import Thread def func():print(id(Singleton()))for index in range(10000): Thread(target=func).start()
上面試python中實現單例的一種方式,但是我們都知道這種實現方式不是線程安全的。上面代碼中我自己寫了測試代碼,但是發現id輸出都是一樣的。這個就證明不了非線程安全的?我的問題是:如何寫出可以證明這種實現不是線程安全的測試代碼?
問題解答
回答1:本來單例模式就只能實例化1個對象,跟線程沒有任何關系。即使是線程安全的,它也返回相同的id。
相關文章:
1. 淺談Vue使用Cascader級聯選擇器數據回顯中的坑2. 運行python程序時出現“應用程序發生異常”的內存錯誤?3. IOS app應用軟件的id號怎么查詢?比如百度貼吧的app-id=4779278134. 利用IPMI遠程安裝centos報錯!5. spring-mvc - spring-session-redis HttpSessionListener失效6. mysql - 查詢 修改數據庫優化問題吧7. javascript - input 是不是不能同時用:value和v-model8. javascript - 引入 simditor,但是顯示標簽,這個怎么解決。9. javascript - 最近用echarts做統計圖時遇到兩個問題!!10. javascript - node得到req不能得到boolean
排行榜

網公網安備