由于单例模式的以上优点,所以是编程中用的比较多的一种设计模式。我总结了一下我所知道的适合使用单例模式的场景:
多线程使用单例使用共享资源时,注意线程安全问题。
'''Singleton Pattern with Python Code
'''import threadingclass Singleton(object):_instance_lock = threading.Lock()def __init__(self):pass@classmethoddef getInstance(cls, *args, **kwargs):if not hasattr(Singleton, "_instance"):# 线程安全with Singleton._instance_lock:if not hasattr(Singleton, "_instance"):Singleton._instance = Singleton(*args, **kwargs)return Singleton._instanceclass Client(object):def main(self):obj = Singleton.getInstance()print(obj)obj = Singleton.getInstance()print(obj)if __name__ == '__main__':Client().main()
python类的调用?输出:
# ./SingletonType.py
<__main__.Singleton object at 0x0000022D98615370>
<__main__.Singleton object at 0x0000022D98615370>
参考:
https://wiki.jikexueyuan.com/project/java-design-pattern/singleton-pattern.html
https://www.cnblogs.com/huchong/p/8244279.html
https://zhuanlan.zhihu.com/p/37534850
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态