python多线程长线程运行

时间:2013-03-09 09:48:45

标签: python multithreading

我正在编写在文本中并行搜索单词的程序。我对运行线程有“问题”,因为它在程序中花费的时间最长。如果有更多线程,则查找单词所需的时间更少,因为文本块在线程之间划分。但是我试着测量哪个部分花费的时间最多,这是启动线程的一部分。这是代码:

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

1 个答案:

答案 0 :(得分:1)

假设你正在使用CPython,为了并行化CPU绑定任务,由于GIL,python线程无法帮助你。请尝试子进程。