時々新しい値で継続的に実行されるスレッドを更新しようとしています。
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"))
次に、それぞれにメソッドを使用して値を設定しますか?