为什么是先关闭进程池再等待呢?

为什么是先关闭进程池再等待呢?

如图,进程池这一节,为什么可以先用close再使用join呢,这个顺序是怎么判断的呢?按常理理解的话,应该是先join等待进程池执行完毕,再关闭进程池?

http://img1.sycdn.imooc.com//climg/60e4375009da8aef06670310.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕美 2021-07-06 19:03:25

同学,你好!pool.close()是关闭进程池,使其不在接受新的任务。防止任何更多的任务被提交到池中。 一旦完成所有任务,工作进程将退出。需要在join之前调用

祝学习愉快!

  • 提问者 HMamie #1

    这俩一定要配合使用嘛?为什么只用join会报错呢?

    2021-07-06 19:04:54
  • 好帮手慕美 回复 提问者 HMamie #2

    同学,你好!是的,在使用join()之前要使用close()关闭进程池,表示不能向进程池添加进程了,join是阻塞主进程一直到所有子进程完成后才继续运行主进程,否则子进程一直执行就会报错。

    祝学习愉快!

    2021-07-07 09:47:09
  • 是不是可以这样理解,这里的进程池就相当于一辆大巴车,而close相当于大巴车不准上客,join大巴车上的乘客(子进程)都下车之后,大巴车就停运了。
    2021-09-25 20:39:13
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师