基本信息
源码名称:python 单例模式(入门级)
源码大小:0.95KB
文件格式:.py
开发语言:Python
更新时间:2019-03-13
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 1 元×
微信扫码支付:1 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
#!/usr/bin/python
# -*- coding: utf-8 -*-
import threading
def synchronized(func):
func.__lock__=threading.Lock()
def synced_func(*args,**kws):
with func.__lock__ :
return func(*args,**kws)
return synced_func
class Singleton(object):
instance=None
@synchronized
def __new__(cls,*args,**kw):
if cls.instance is None:
cls.instance = object.__new__(cls, *args, **kw)
return cls.instance
def __init__(self, num):
self.a = num 5
def printf(self):
print(self.a)
def worker(i):
single_test = Singleton(i)
single_test.printf()
print "id----> %s" % id(single_test)
if __name__ == "__main__":
task_list = []
for i in range(3):
t = threading.Thread(target=worker,args=(i,))
task_list.append(t)
for one in task_list:
one.start()
for one in task_list:
one.join()