设计模式的Python实现
目录
一、Python 实现单例模式
# 知识点:
# 1.世界上只有一只唐老鸭
# 2. __new__方法加双重校验锁实现的线程安全的单例模式
import threading
class DonaldDuck(object):
_instance_lock = threading.Lock()
def __new__(cls, *args, **kwargs):
if not hasattr(DonaldDuck, "_instance"):
with DonaldDuck._instance_lock:
if not hasattr(DonaldDuck, "_instance"):
DonaldDuck._instance = object.__new__(cls)
return DonaldDuck._instance
def __init__(self):
pass
duck1 = DonaldDuck()
duck2 = DonaldDuck()
print(duck1, duck2)
def task(arg):
duck = DonaldDuck()
print(duck)
for i in range(10):
t = threading.Thread(target=task, args=[i, ])
t.start()