首页 > 编程语言 > 详细

多线程下,使用new实现单例

时间:2019-05-30 19:49:59      阅读:124      评论:0      收藏:0      [点我收藏+]
import threading

class Test(object):
    from threading import Lock
    
    lock = Lock()
    flag = None
    
    def __new__(cls, *args, **kwargs):
        with cls.lock:
            if cls.flag is None:
                cls.flag = super().__new__(cls)
        return cls.flag
    
    
def func():
    res = Msg()
    print(res)
   
t = threading.Thread(target=fun).start()
t2 = threading.Thread(target=fun).start()

#<__main__.Msg object at 0x00000193A9C3A198>
#<__main__.Msg object at 0x00000193A9C3A198>

  

多线程下,使用new实现单例

原文:https://www.cnblogs.com/wangtaobiu/p/10951437.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!