使用语言:python
多线程,例如计网传输的sender需要同时receive和send,这就是thread
thread.Timer,倒计时器,只执行一次
期间可以.cancel()
thread.Threading(, , )这个是一直执行
期间不可以.cancel()
要取消只能在其调用的函数里面加入while var,用variable控制
obj = 上述命令 这是创建对象
obj.start() 这是开始改副线程
Threading是一段时间内一直,Timer是一段时间内一次,这就是区别,
那有没有办法规定一段时间内运行多次呢?难道要由多个一次定时器做成?
重写Timer的run方法,可以解决这个问题
import time
from threading import Timer
def fun_timer():
print('hello timer', time.time() )
class RepeatTimer(Timer):
def run(self):
while not self.finished.wait(self.interval):
self.function(*self.args, **self.kwargs)
re = RepeatTimer(1, fun_timer)
re.start()
time.sleep(5) # 运行五秒后主线程苏醒
re.cancel() # 副线程cancel
Output:
hello timer 1682564123.9084446
hello timer 1682564124.9197044
hello timer 1682564125.930051
hello timer 1682564126.9363446