下面的python单例模式,这种实现方法应该是线程不安全的,暂时先留在这里,再考虑其他方法。
如:
class
Logger(object):
log = None
@staticmethod
def new():
if not Logger.log:
Logger.log = Logger()
return Logger.log
def write(self, v):
print str(self), v
log1 = Logger.new()
log1.write( " log1 " )
log2 = Logger.new()
log2.write( " log2 " )
log = None
@staticmethod
def new():
if not Logger.log:
Logger.log = Logger()
return Logger.log
def write(self, v):
print str(self), v
log1 = Logger.new()
log1.write( " log1 " )
log2 = Logger.new()
log2.write( " log2 " )
分析:很简单的实现方法,把当前实例保存起来,下次实例化时再返回以前的实例。但是在判断的时候保证不了是线程安全的。放在这里,先有个思路。