我试图更新不时使用新值连续运行的线程。
class Test:
def __init__(self, num):
#testing reasons
self.num = num
def printloop(self, num):
self.num = num
#running is set to True sometime in the beginning
while running:
print(self.num)
time.sleep(3)
if not running:
print("finished")
def setnum(self, num):
self.num = num
我创建这样的线程:
t1 = threading.Thread(target=test.printloop,args=("1"))
这可以工作并打印正确的参数。
但是,如果需要,如何使用新值更新单个线程?并非所有线程都可能需要更新。我的班级中的 setnum 方法显然不起作用,因为它会更新所有线程的值。
我是否需要限制线程生命周期并加入并等待它们完成。然后用新的价值观重新创造它们?或者我应该为每个线程定义一个变量 - 我如何动态地做到这一点?或者有没有更好的方法我没有看到?谢谢!
编辑:
我想我最终会得到类似的东西:
test1 = Test(1)
..
test5 = Test(5)
t1 = threading.Thread(target=test1.printloop,args=("1"))
t5 = threading.Thread(target=test5.printloop,args=("5"))
然后在每个上使用一种方法来设置值?