python 函数中开启线程,每次进入函数开启一次线程,线程里面根据传递的参数处理
#!/usr/bin/python
# -*-coding:utf-8 -*-
import sys;
import os;
import time;
import threading;
class MTimerClass(threading.Thread): # cookie监控时钟
def __init__(self,fn,args=(),sleep=1):
threading.Thread.__init__(self)
self.fn = fn
self.args = args
self.sleep = sleep
self.setDaemon(True)
self.isPlay = True #当前是否运行
self.fnPlay = False #当前已经完成运行
self.thread_stop=False;
def SetSleep(self,sleep): # 重新设置 时间间隔
self.sleep=sleep;
def __do(self):
self.fnPlay = True;
apply(self.fn,self.args);
self.fnPlay = False
def run(self):
while self.isPlay :
if self.thread_stop==True:
break;
#if SubCommon.ifexeStop==True: #可以外部调用 来关掉线程。
# print 'thread break'
# break;
#print self.sleep;
time.sleep(self.sleep)
self.__do();
def stop(self):
#stop the loop
self.thread_stop = True;
self.isPlay = False;
while True:
if not self.fnPlay : break
time.sleep(0.01)
def GetSearchinfo():
print 'hhhhh...';
# to do
pass;
def main():
tCheck=MTimerClass(GetSearchinfo, '', 60);
tCheck.setDaemon(True); # 随主线程一起结果
tCheck.start(); #线程启动
if __name__== "__main__":
main();