Как я могу вызывать поток несколько раз в 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; но поскольку я могу запустить поток только один раз, start, по-видимому, здесь не подходит. Если я использую run, кажется, что все потоки запускаются последовательно, не только потоки в одном списке, но также потоки из разных списков. Поддерживается ли поддержка содержимого для компонентов CDI в Eclipse Helios?

У кого-нибудь есть опыт в этом?

8
задан BuZZ-dEE 22 May 2015 в 17:05
поделиться