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后面才对?
谢谢老师。
相关截图:
17
收起
正在回答
1回答
同学,你好!对同学的疑问做如下解答:
1、join()是等待进程池任务结束, close()是关闭进程池,进程池任务结束后一般要关闭,所以join()、close()一起使用
2、伴随进程池关闭,join()才会使用,因此join()要放在close()之后
3、进程池close之后,不会再接收新的进程,close()在前,join()在后,目的就是为了保证进程全部结束之后,主进程再退出
祝学习愉快~
Python全栈工程师2020
- 参与学习 人
- 提交作业 5211 份
- 解答问题 2433 个
Facebook曾声称“只招全栈工程师”!全栈用人需求猛增,市面人才紧缺。 0基础进击Python全栈开发,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星