2011-12-18 18 views
0

大きなプログラムの一部である次のコードブロックがあります。私はすべてのスレッドが閉じているが、それが動作するように見えることはできません実行時間を印刷するようにしようとしています。何か案は?スレッドを使用したPythonプログラムのタイミング

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

ありがとう!

+0

リーダーもStockDataも定義されていません。多分それは問題ですか? –

+0

これは大きなプログラムの一部です。読者はcsv.readerを参照しています。StockDataは私の株データクラスを参照しています。コードが実行され、スレッドのために実行時間を表示することができません。 –

答えて

2

すべてのスレッドが完了するのを待っているわけではありません(最後に作成されたスレッドのみ)。おそらくあなたのスレッド産卵ループでこれのようなものでしょうか?

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

私はこれを試してみると、各スレッドが完了する時間を表示します。私はちょうど最後のものが完了するか、またはそれより良い、プ​​ログラムの完全な実行時間を望むだろう。 –

+0

printステートメントは 'for'で始まり、 't.join'で終わっていません。間違いなく省略記号はこれを見難くする –

関連する問題