我有一个多线程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()因为等待所有线程完成并计算它需要花费多少时间 让所有线程完成工作
问题是什么?
答案 0 :(得分:2)
这是:
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