使用线程计算python程序

时间:2011-12-18 20:17:46

标签: python multithreading time

我有以下代码块,它是更大程序的一部分。我试图让它在所有线程关闭后打印执行时间,但似乎无法让它工作。有任何想法吗?

import time
import csv
import threading 
import urllib.request


def openSP500file():
    SP500 = reader(open(r'C:\Users\test\Desktop\SP500.csv', 'r'), delimiter=',')
    for x in SP500:
        indStk = x[0]
        t1 = StockData(indStk)
        t1.start()

    if not t1.isAlive():
        print(time.clock()-start_time, 'seconds')
    else:
        pass

def main():
    openSP500file()


if __name__ == '__main__':
    start_time = time.clock()
    main()

谢谢!

1 个答案:

答案 0 :(得分:2)

您不是在等待所有线程完成(仅创建最后一个)。在你的线程产生循环中可能是这样的东西吗?

threads = []
for x in SP500:
    t1 = StockData(x[0])
    t1.start()
    threads.append(t1)
for t in threads:
    t.join()
... print running time