from multiprocessing import Pool
import os, time, random
def process_pool_program_():
def long_time_task(name):
print 'Run task %s (%s)...' % (name, os.getpid())
start = time.time()
time.sleep(random.random() * 3)
end = time.time()
print 'Task %s runs %0.2f seconds.' % (name, (end - start))
print 'Parent process %s.' % os.getpid()
p = Pool()
for i in range(5):
print p.apply_async(long_time_task, args=(i,)).ready()
print 'Waiting for all subprocesses done...'
p.close()
p.join()
print 'All subprocesses done.'
process_pool_program_()
为什么这样运行进程池会失败呢,而去掉最外层的函数定义就不会失败