Прошу прощения, если это глупый вопрос. Я пытаюсь использовать несколько классов многопоточности для завершения разных заданий, что предполагает многократное использование этих многопотоков в разное время. Но я не уверен, какой метод использовать. Код выглядит следующим образом:Как я могу вызвать поток несколько раз в 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 .
Я пытаюсь иметь все нити во все WorkerList начать функционировать в то же время, или по крайней мере начать примерно в то же время. Когда-то однажды все они были прекращены, я хотел бы снова вызвать все потоки.
Если не было петли, я могу просто использовать .start; но так как я могу только начать нить один раз, начинать, по-видимому, не подходит здесь. Если я использую run, кажется, что все потоки начинаются последовательно, а не только потоки в одном списке, но также потоки из разных списков.
Может ли кто-нибудь помочь?
но я использую метод start() в цикле, моя программа может фактически дать мне ошибку времени выполнения, сказав, что поток уже запущен. Поэтому я не могу снова вызвать метод run в каждом потоке. – user500432
Право, я отредактировал свой ответ ... –