join、close、terminate方法的使用

join、close、terminate方法的使用

问题描述:

老师您好,在这节课中使用join阻塞子进程运行,然后子进程运行结束后用terminate结束其他子进程。所以顺序是:

先用join()

再用terminate()

这个比较好理解


但对于close和join,有几个问题:

1、为什么join一般需要和close一起搭配使用?

2、为什么close不和terminate一样,是放在join后面,反而close放在了join前面?

3、前面一节中,join是为了阻塞主进程,让apply_async执行完。如果执行到了close,再执行join阻塞,这时for循环里后续等待进入进程池的进程,岂不是都被close拦截掉了?这样理解的话是不是close应该放在join后面才对?


谢谢老师。

相关截图:

http://img1.sycdn.imooc.com//climg/6001b0f9092d0ffd11740510.jpg

正在回答

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

1回答

​同学,你好!对同学的疑问做如下解答:

1、join()是等待进程池任务结束, close()是关闭进程池,进程池任务结束后一般要关闭,所以join()、close()一起使用

2、伴随进程池关闭,join()才会使用,因此join()要放在close()之后

3、进程池close之后,不会再接收新的进程,close()在前,join()在后,目的就是为了保证进程全部结束之后,主进程再退出

祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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