Heim > Fragen und Antworten > Hauptteil
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()
Das Obige ist eine Möglichkeit, einen Singleton in Python zu implementieren, aber wir alle wissen, dass diese Implementierung nicht threadsicher ist. Im obigen Code habe ich den Testcode selbst geschrieben, aber festgestellt, dass die ID-Ausgabe dieselbe ist. Dies kann nicht beweisen, dass es nicht Thread-sicher ist. Meine Frage ist: Wie schreibe ich Testcode, der beweisen kann, dass diese Implementierung nicht Thread-sicher ist?