Python创建调用相同函数的不同线程

时间:2017-06-29 09:48:51

标签: python multithreading python-multithreading

在我的项目中,我有一类线程。像这样:

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 Threading类时我都需要一个新线程,我该怎么做?

提前致谢

1 个答案:

答案 0 :(得分:1)

MakeHtml扩展了Thread,但是如果你只有一个MakeHtml实例,那么你将只有一个线程

例如,如果您需要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]