我有一个多线程Python应用程序 写成这样:
start=time.time()
for i in ids:
t=Thread(target=parseRows,args=(i,))
t.start()
t.join()
end=time.time()-start
print('====================================================')
print('Total time : '+ str(end))
但是当我在任务管理器中看到我的线程时,只有 8 个线程或最多 12 个线程 但 ids 列表中有 44000 个项目,我想查看超过 12 个线程 在任务管理器中,它使用 parseRows 方法。
我使用了 t.join() 因为等待所有线程完成并计算总共花费了多少时间 让所有线程完成工作
问题是什么?
最佳答案
这里是:
import threading
import time
def parseRows(i):
print "%d\n"%(i,),
time.sleep(0.1)
ids=range(100)
start=time.time()
ts=list()
for i in ids:
t=threading.Thread(target=parseRows,args=(i,))
ts.append(t)
t.start()
for t in ts:
t.join()
end=time.time()-start
print('====================================================')
print('Total time : '+ str(end))
也可以尝试一下,在第二个 for 语句前面放置一个注释符号:-)
与
#for t in ts:
我得到:
Total time : 10.0569360256
没有,我明白
Total time : 0.117892026901
关于Python多线程程序的最大线程数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43819600/