运行代码时出错: “线程只能启动一次”
它与我的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)
答案 0 :(得分:1)
你杀了它后就无法启动一个线程。
你迭代self.threads
10次(for i in range(10)
)。
并且在每次迭代中你都会启动它中的所有线程(并附加一些新的线程,但你也会迭代前面被杀死的线程)。
我认为您要做的是在每次迭代之前清空线程列表。
尝试在for i in range(10)
之后添加下一行:
self.threads = []