Python创建多个线程并创建处理时间

时间:2014-01-28 23:52:03

标签: python multithreading python-2.7 python-3.x

运行代码时出错: “线程只能启动一次”

它与我的for I in range(10)

有关

我在启动后立即杀死了线程所以理论上所有线程都应该在返回到下一个循环之前被杀死以创建另一组线程。

我要做的是获得运行线程所花费的时间

def __startThreads__(self):
        print("How Many =", self.howMany)
        start1 = time()
        for i in range(10):
            start2 = time()
            for i in range(self.howMany):
                self.threads.append( ThreadEntity( str(i), iAmTheProgramCode ) )
            for each in self.threads: 
                each.start()
            for each in self.threads:
                each.killThreadEntity()
            stop2 = time()
            threadtime = stop2 - start2
            print(threadtime)
        stop1 = time()
        threadTotalTime = stop1 - start1
        print(threadTotalTime)

1 个答案:

答案 0 :(得分:1)

你杀了它后就无法启动一个线程。

你迭代self.threads 10次(for i in range(10))。 并且在每次迭代中你都会启动它中的所有线程(并附加一些新的线程,但你也会迭代前面被杀死的线程)。

我认为您要做的是在每次迭代之前清空线程列表。

尝试在for i in range(10)之后添加下一行:

self.threads = []