参考:http://stackoverflow.com/questions/18018033/how-to-stop-a-looping-thread-in-python
Python中的线程,有时候运行在死循环中,那么如何关闭这种运行状态中的线程呢?
本参考链接中给出了一种方法,就是通过修改控制循环标志位来实现,让线程跳出run方法即可.如下所示:
下面代码是一个thread的类:
class PingAssets(threading.Thread): def __init__(self, threadNum, asset, window): threading.Thread.__init__(self) self.threadNum = threadNum self.window = window self.asset = asset self.signal = True def run(self): while self.signal: do_stuff() sleep()
通过__init__函数,我们使得signal变量初始值为True,保证了run方法轮询.
那么如何停止线程呢?很简单,修改 signal 参数为 False 即可.
def OnStop(self, e): for t in self.threads: t.signal = False
这样就实现了停止线程运行.
文章的脚注信息由WordPress的wp-posturl插件自动生成