我正在编写一个应该无限期运行的脚本,并且每隔几秒就会使用线程将一些内容放入db中。这有效,但我看到进程的内存每隔几秒就会略微增加,我认为这是因为保存所有Thread对象的列表永远不会被清空。我该怎么办? 连接被置于is_alive条件下,因此它不会花费任何时间来产生下一个线程。 以下示例导致
AttributeError:'Thread'对象没有属性'kill'
ggplot2
我希望输出为:
1 1
1 1
答案 0 :(得分:0)
最后一行(for
- 循环和开启)可以简单地编写为:
threads_alive = []
for t in threads:
if t.is_alive() == False:
t.join()
else:
threads_alive.append(t)
threads = threads_alive
或者如果你必须以某种方式处理已经死亡的线程:
threads_alive = []
threads_dead = []
for t in threads:
if t.is_alive() == False:
t.join()
threads_dead.append(t)
else:
threads_alive.append(t)
threads = threads_alive
for t in threads_dead:
... postprocess dead threads here ...