开发过程中,常常需要反复执行某个特定的过程,一般线程只有start()方法,却没有stop()方法。但是我们往往需要在线程之外去控制线程的执行。所以我重新定义了一个类,去重写run()方法。
# coding: utf-8
import threading
from time import sleep
def funcc(id):
print('我还活着 %s'%id)
sleep(3)
class StoppableThread(threading.Thread):
def __init__(self, func, args = None, id=None):
super(StoppableThread, self).__init__()
self.func = func
self.args = args
self.id = id
self.flag = True
def run(self):
while self.flag:
if self.args:
self.func(*self.args)
else:
self.func()
def stop(self):
self.flag = False
if __name__ == '__main__':
t = StoppableThread(func=funcc,args=(1,))
t.start()
print('__________')
sleep(10)
t.stop()