多线程实现单例模式
Posted xuechengeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程实现单例模式相关的知识,希望对你有一定的参考价值。
代码:
import threading def synchronized(func): func.__lock__ = threading.Lock() def lock_func(*args, **kwargs): with func.__lock__: return func(*args, **kwargs) return lock_func class Singleton(object): instance = None @synchronized def __new__(cls, *args, **kwargs): """ :type kwargs: object """ if cls.instance is None: cls.instance = super().__new__(cls) return cls.instance def __init__(self, num): self.a = num + 5 def printf(self): print(self.a) a = Singleton(3) print(id(a)) b = Singleton(4) print(id(b))
以上是关于多线程实现单例模式的主要内容,如果未能解决你的问题,请参考以下文章