У меня есть часть кода ниже, которая создает несколько потоков для выполнения задачи, которая отлично работает сама по себе. Однако я пытаюсь понять, почему заявления печати, которые я вызываю в своей функции, не выполняются до тех пор, пока не будут завершены все потоки и вызывается оператор 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'