import threading
import time
class SingleTon(object):
instance = None
def __init__(self, name):
self.name = name
def __new__(cls, *args, **kwargs):
if cls.instance:
return cls.instance
time.sleep(0.1)
cls.instance = object.__new__(cls)
return cls.instance
def task():
obj = SingleTon('Arno')
print(obj)
for i in range(10):
t = threading.Thread(target=task)
t.start()
上述代码为单例模式和多进程的一个复合应用
但是 在执行时会出现异常情况
<__main__.SingleTon object at 0x0000018E3CEE13A0><__main__.SingleTon object at 0x0000018E3CEE1BE0>
<__main__.SingleTon object at 0x0000018E3D168490>
<__main__.SingleTon object at 0x0000018E3D168BE0><__main__.SingleTon object at 0x0000018E3D168490><__main__.SingleTon object at 0x0000018E3D168AF0>
<__main__.SingleTon object at 0x0000018