麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Python > 正文

Python單例模式實例分析

2020-02-23 06:19:55
字體:
來源:轉載
供稿:網友

本文實例講述了Python單例模式的使用方法。分享給大家供大家參考。具體如下:

方法一
代碼如下:import threading 
 
class Singleton(object): 
    __instance = None 
 
    __lock = threading.Lock()   # used to synchronize code 
 
    def __init__(self): 
        "disable the __init__ method" 
 
    @staticmethod 
    def getInstance(): 
        if not Singleton.__instance: 
            Singleton.__lock.acquire() 
            if not Singleton.__instance: 
                Singleton.__instance = object.__new__(Singleton) 
                object.__init__(Singleton.__instance) 
            Singleton.__lock.release() 
        return Singleton.__instance
1.禁用__init__方法,不能直接創建對象。

2.__instance,單例對象私有化。

3.@staticmethod,靜態方法,通過類名直接調用。

4.__lock,代碼鎖。

5.繼承object類,通過調用object的__new__方法創建單例對象,然后調用object的__init__方法完整初始化。

6.雙重檢查加鎖,既可實現線程安全,又使性能不受很大影響。

方法二:使用decorator
代碼如下:#encoding=utf-8 
def singleton(cls): 
    instances = {} 
    def getInstance(): 
        if cls not in instances: 
            instances[cls] = cls() 
        return instances[cls] 
    return getInstance 
 
@singleton 
class SingletonClass: 
    pass 
 
if __name__ == '__main__': 
    s = SingletonClass() 
    s2 = SingletonClass() 
    print s 
    print s2

也應該加上線程安全

代碼如下:import threading 
 
class Sing(object): 
    def __init__(): 
        "disable the __init__ method" 
 
    __inst = None # make it so-called private 
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 成人精品久久久 | 黄色网址你懂的 | 日韩av电影免费看 | 美女喷水网站 | 操你逼 | 国产亚洲精品久久久久婷婷瑜伽 | 激情在线免费观看 | 激情久久一区二区 | 国产精品久久久免费 | 91成人影库| 在线免费观看欧美 | 91短视频在线观看视频 | 久草手机视频在线观看 | 亚洲第一视频 | 国内精品久久久久久久久久 | 亚洲影视中文字幕 | 欧美一区二区三区免费观看 | av免费不卡国产观看 | 日本在线观看视频网站 | 一区二区久久电影 | 国产精品99久久久久久久女警 | 免费看成年人网站 | 91成人午夜性a一级毛片 | 特一级黄色毛片 | 久久精品黄| 成人免费国产 | 亚洲成人第一页 | 日韩视频在线观看免费 | 亚洲成人国产综合 | 一区二区三区精品国产 | 91色琪琪电影亚洲精品久久 | 亚洲视频在线免费看 | 免费国产一区 | 日本a∨精品中文字幕在线 欧美1—12sexvideos | 免费高清一级欧美片在线观看 | 99精品视频在线免费观看 | 高清国产午夜精品久久久久久 | 久久99精品视频在线观看 | 九九热免费视频在线观看 | 午夜视频在线免费观看 | 在线影院av |