方法一
1.禁用__init__方法,不能直接創(chuàng)建對象。
2.__instance,單例對象私有化。
3.@staticmethod,靜態(tài)方法,通過類名直接調(diào)用。
4.__lock,代碼鎖。
5.繼承object類,通過調(diào)用object的__new__方法創(chuàng)建單例對象,然后調(diào)用object的__init__方法完整初始化。
6.雙重檢查加鎖,既可實(shí)現(xiàn)線程安全,又使性能不受很大影響。
方法二:使用decorator
也應(yīng)該加上線程安全
附:性能沒有方法一高
新聞熱點(diǎn)
疑難解答