0

私はテキスト内の単語を並行して検索するプログラムを書いています。プログラムで最も時間がかかるため、スレッドの実行に「問題」があります。より多くのスレッドがある場合、テキストブロックはスレッド間で分割されるため、単語を見つけるのにかかる時間は短くなります。しかし、私はどの部分が最も時間がかかるかを測定しようとしました、そしてそれは開始スレッドのこの部分です。コードは次のとおりです。

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

Threadクラスのrun()メソッド:

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

1 に答える 1

1

CPUバウンドタスクを並列化するためにCPythonを使用していると仮定すると、GILが原因で、Pythonスレッドは役に立ちません。代わりにサブプロセスを試してください。

于 2013-03-09T09:51:33.580 に答える