import threading
from functools import wraps
def singleton(cls):
lock_ = threading.Lock()
@wraps(cls)
def wrapper(*args, **kwargs):
if not hasattr(cls, "_instance"):
with lock_:
if not hasattr(cls, "_instance"):
cls._instance = cls(*args, **kwargs)
return cls._instance
return wrapper
# 使用说明
@singleton
class Lei(object):
pass
将类变为单例模式的装饰器
最新推荐文章于 2024-06-06 20:35:43 发布