为什么先打印 'Waiting for all subprocesses done...',再执行子进程?
Topic source懂了,如下,如果主进程增加 time.sleep(10),看到打印结果就不一样了。即,主进程,与子进程都是并行启动,主要看执行的时间分配了。:)
for i in range(5):
p.apply_async(long_time_task, args=(i,))
** time.sleep(10)**
print('Waiting for all subprocesses done...')
p.close()
结果:
Parent process 16852.
Run task 0 (11524)...
Run task 1 (11524)...
Run task 2 (11524)...
Run task 3 (11524)...
Run task 4 (11524)...
Waiting for all subprocesses done...
All subprocesses done.
- 1
乐乐吧吧
请教大神:
这个示例里,为什么结果是先打印了“Waiting for all subprocesses done...",再打印:
另外,为什么执行完‘Waiting for all subpresses done'这句打印,再回头Run task 4呢?我的理解是:此时已经跳出了 for 循环,打印完'waiting...'这句,不是直接到p.close()了吗?进程执行的过程是怎样的?百思不得其解,求大神指导!