Je suis désolé si c'est une question stupide. J'essaie d'utiliser un certain nombre de classes de multi-threading pour terminer différents travaux, ce qui implique d'invoquer ces multi-threads à des moments différents pour plusieurs fois. Mais je ne suis pas sûr de la méthode à utiliser. Le code ressemble à ceci:Comment puis-je invoquer un thread plusieurs fois en Python?
class workers1(Thread):
def __init__(self):
Thread.__init__(self)
def run(self):
do some stuff
class workers2(Thread):
def __init__(self):
Thread.__init__(self)
def run(self):
do some stuff
class workers3(Thread):
def __init__(self):
Thread.__init__(self)
def run(self):
do some stuff
WorkerList1=[workers1(i) for i in range(X)]
WorkerList2=[workers2(i) for i in range(XX)]
WorkerList2=[workers3(i) for i in range(XXX)]
while True:
for thread in WorkerList1:
thread.run (start? join? or?)
for thread in WorkerList2:
thread.run (start? join? or?)
for thread in WorkerList3:
thread.run (start? join? or?)
do sth .
Je suis en train d'avoir tous les fils dans tous les WorkerList pour commencer à fonctionner en même temps, ou tout au moins commencer dans le même temps. Après quelque temps, ils étaient tous terminés, je voudrais invoquer tous les fils à nouveau.
S'il n'y avait pas de boucle, je peux simplement utiliser .start; mais puisque je ne peux commencer un fil qu'une seule fois, commence apparemment ne correspond pas ici. Si j'utilise run, il semble que tous les threads démarrent séquentiellement, pas seulement les threads dans la même liste, mais aussi des threads provenant de différentes listes.
Quelqu'un peut-il aider s'il vous plaît?
mais j'utilise la méthode start() dans la boucle, mon programme peut effectivement me donner une erreur d'exécution, en disant que le thread est déjà démarré. Je ne suis donc plus capable d'invoquer la méthode run dans chaque thread. – user500432
à droite, j'ai édité ma réponse ... –