import threading,time
#观察者线程
class ObserverThread(threading.Thread):
def __init__(self, param):
threading.Thread.__init__(self)
self.param = param
def run(self):
self.doCheck()
def doCheck(self):
print "观察者---观望中..."
while True:
count = self.param.activeCount()
if count <= 2:
msg = '被观察者---线程运行结束, 运行观察者逻辑'
print msg
print "观察者---运行中..."
time.sleep(1)
print "观察者---运行结束"
break
#被观察者线程
class LogicThread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
self.doLogic()
#执行命令
def doLogic(self):
msg = "被观察者---程序运行中"
print msg
for i in range(0,6):
msg = "被观察者---运行%s秒" % str(i)
print msg
time.sleep(1)
if __name__ == "__main__":
print "主线程--- 任务启动"
batchThread = LogicThread()
batchThread.start()
checkThread = ObserverThread(threading)
checkThread.start()
利用python的线程检测实现观察者模式
最新推荐文章于 2021-02-04 12:45:38 发布