文章詳情頁
python - 關于單例的線程安全問題
瀏覽:123日期: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. javascript - 如圖,百度首頁,查看源代碼為什么什么都沒有?2. android - weex 項目createInstanceReferenceError: Vue is not defined3. javascript - 為什么clearInterVal不起作用呢?4. html - 關于CSS實現border的0.5px設置?5. PHPExcel表格導入數據庫怎么導入6. android - 哪位大神知道java后臺的api接口的對象傳到前端后輸入日期報錯,是什么情況?求大神指點7. pdo 寫入到數據庫的內容為中文的時候寫入亂碼8. PHP類封裝的插入數據,總是插入不成功,返回false;9. vue2.0+webpack 如何使用bootstrap?10. mac連接阿里云docker集群,已經卡了2天了,求問?
排行榜
