Haw*_*ing 21 python multithreading
我在下面有一段代码创建了一些执行任务的线程,它本身就能很好地工作.但是我很难理解为什么我在函数中调用的print语句在所有线程完成并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) #use N processes to download the data
_=pool.map(func,params)
print 'finished'
Run Code Online (Sandbox Code Playgroud)
Yos*_*ssi 15
这是由于stdout缓冲而发生的.你仍然可以刷新缓冲区:
import sys
print 'starting'
sys.stdout.flush()
Run Code Online (Sandbox Code Playgroud)