【整理】Python如何停止循环中的Thread?

原创文章,转载请注明: 转载自勤奋的小青蛙
本文链接地址: 【整理】Python如何停止循环中的Thread?

参考: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

这样就实现了停止线程运行.

原创文章,转载请注明: 转载自勤奋的小青蛙
本文链接地址: 【整理】Python如何停止循环中的Thread?

文章的脚注信息由WordPress的wp-posturl插件自动生成



|2|left
打赏

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: