创建型模式-单例模式(使用类实现)

import time
from threading import Lock
from concurrent.futures import ThreadPoolExecutor


class Test():
    pass


class Singleton():
    _local = Lock()
    _insrance = None

    @classmethod
    def instance(cls, *args, **kwargs):
        if not cls._insrance:
            with cls._local:
                if not cls._insrance:
                    time.sleep(1)
                    cls._insrance = Test()
        return cls._insrance


def get_instance():
    print(id(Singleton.instance()))



if __name__ == "__main__":
    poll = ThreadPoolExecutor(max_workers=5)
    for i in range(10):
        poll.submit(get_instance)

  

posted @ 2023-06-27 13:59  你看起来真的很好吃  阅读(4)  评论(0编辑  收藏  举报