我现在正在试验线程。计时器但不知怎么的我做得不太好。。
我的目标是运行数百个函数,一直重复。
问题是,我的RAM的使用在不断增长,直到进程停止。在
我的代码是这样的:from threading import Timer
class Foo:
def __init__(self, number):
self.number = number
self.timer = Timer(1, self.print_number)
self.timer.start()
def print_number(self):
print "Number: %s"%self.number
self.repeat()
def repeat(self):
self.timer.cancel()
#self.timer.join()
#time.sleep(1)
self.timer = Timer(3, self.print_number)
self.timer.start()
for x in range(1, 300):
Foo(x)
所以,我读到我可以在.cancel()之后使用.join()方法终止线程。
但是当我这样做的时候我得到了一个RuntimeError: (cannot join current thread)。
在一个类似的话题上我读到了我可以用的时间。睡觉在.cancel()之后终止线程,
但这对我来说没什么大不了的。在
我的问题是:在这个代码示例中,我如何正确地终止线程,如何阻止脚本使用越来越多的RAM,或者我做了什么严重的错误?在
很抱歉,如果我问的问题已经被问了很多次了,但我正在搜索和尝试了几个小时,还没有找到解决方案。在
提前谢谢。在