Python多线程打印语句直到所有线程完成执行后才延迟执行。

10 浏览
0 Comments

Python多线程打印语句直到所有线程完成执行后才延迟执行。

我有一段以下的代码,它创建了几个线程来执行一个任务,在它自己身上工作得很完美。然而,我很难理解为什么我在函数中调用的打印语句直到所有线程完成并调用print 'finished'语句时才执行。我希望它们在线程执行时被调用。有没有简单的方法来实现这一点,为什么一开始它就是这样工作的?

def func(param):
    time.sleep(.25)
    print param*2
if __name__ == '__main__':
    print 'starting execution'
    launchTime = time.clock()
    params = range(10)
    pool=multiprocessing.Pool(processes=100) #使用N个进程下载数据
    _=pool.map(func,params)
    print 'finished'

0