2017-06-29 100 views
0

在我的項目,我有一個類threading.Thread的是這樣的:Python中創建不同的線程調用同一個功能

class MakeHtml(threading.Thread): 
    def __init__(self, *rstext): 
     self.outhtml = [x for x in rstext] 
     self.retval = '' 
     threading.Thread.__init__(self) 

    def run(self): 
     ...do something 
在另一個文件我叫

,每10秒MakeHtml類

t = MakeHtml(mrr1, mrr2, mrr3, mrr4) 

爲了創建一個線程,但是通過這種方式,我發現線程每次都是一樣的。

我每次調用MakeHtml線程類時都需要一個新線程,我該怎麼做?

在此先感謝

回答

1

MakeHtml延長線,但如果你有MakeHtml的只有1個實例,你將有隻有一個線程

舉例來說,如果你想2個不同的線程,你將不得不做

t = MakeHtml(mrr1, mrr2, mrr3, mrr4) # one thread 
t1 = MakeHtml(mrr1, mrr2, mrr3, mrr4) # another one 

您可以使用:

import threading 

def afunction(mm): 
    # do job 
    pass 

threads = [] 
for mm in [mmr1, mmr2, mmr3n mmr4]: 
    t = threading.Thread(target=afunction, args=[mm,]) 
    threads.append(t) 
    t.start() 
[t.join() for t in threads] 
相關問題