2013-03-09 165 views
0

我正在寫程序,在文本中搜索並行單詞。我有運行線程的「問題」,因爲它在程序中花費的時間最長。如果線程更多,則需要更少的時間來查找單詞,因爲文本塊在線程之間分配。但我試圖測量哪部分花費最多時間,這是開始線程的這一部分。下面的代碼:python多線程長線程運行

startThreadsStart=time.time() 
for i in range(0,threads_number): 
    threads.append(ParallelStringSearch("something", i)) 
    threads[i].start() 
startThreadsEnd = time.time()-startThreadsStart 

和run()方法中的Thread類:

def run(self): 
    self.time = time.time() 
    self.search() 
    self.end_time = time.time()-self.time 
    print "EXECUTION: ",self.index,self.end_time 
+0

您使用多少個線程? – shx2 2013-03-09 10:27:15

回答

1

假設你使用CPython的,用於並行CPU密集型任務,蟒蛇線程將無法幫助你,因爲GIL。改用子進程。

+0

我正在使用沒有GIL的Jython。但開始線程需要最長的時間 – adaniluk 2013-03-09 10:12:07

+0

我使用startThreadsStart和startThreadsEnd來獲取運行所有線程的時間。例如,我有120個線程,一個大約0.0620000362396找字,但所有啓動所有120個線程的過程需要0.317000150681 – adaniluk 2013-03-09 10:25:46

+0

如果有更多的線程,我應該得到更少的整體處理時間 – adaniluk 2013-03-09 10:29:06