синхронизация программы на python с потоками - PullRequest
0 голосов
/ 19 декабря 2011

У меня есть следующий блок кода, который является частью большой программы. Я пытаюсь заставить его напечатать время выполнения, как только все потоки закрыты, но не могу заставить его работать. Есть идеи?

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()

Спасибо! * * 1004

1 Ответ

2 голосов
/ 19 декабря 2011

Вы не ожидаете завершения всех потоков (только последний созданный).Возможно, что-то подобное в вашем цикле порождения потоков?

threads = []
for x in SP500:
    t1 = StockData(x[0])
    t1.start()
    threads.append(t1)
for t in threads:
    t.join()
... print running time
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...