Python 为什么multiprocessing.Pool.\uuuu exit\uuuu()调用terminate()而不是close()?
文件说明如下(略为缩写): 池对象支持上下文管理协议<代码>\uuuu enter\uuuu()返回池对象,然后Python 为什么multiprocessing.Pool.\uuuu exit\uuuu()调用terminate()而不是close()?,python,python-multiprocessing,Python,Python Multiprocessing,文件说明如下(略为缩写): 池对象支持上下文管理协议\uuuu enter\uuuu()返回池对象,然后\uuuu exit\uuuuuu()调用terminate() 为什么\uuuu退出
\uuuu exit\uuuuuu()
调用terminate()
为什么\uuuu退出
调用而不调用?如果调用close()
,不是更好吗?这将等到所有任务完成后再关闭池
查看我为什么要问,考虑<代码>()<代码>。在退出时,它对返回的文件对象调用
close()
,以确保所有缓冲数据都已写入磁盘。\uuuu exit\uuuu()
调用一些类似终止的函数是没有意义的,这些函数不能保证所有数据都被刷新。或者会吗?fwiw,这是增加这种行为的补丁:2015年有一条附加评论对这个问题表达了同样的担忧。也许在python bug跟踪器中打开一个bug?使用join()然后关闭()?@J.Goedhart:join()
应该只在terminate()
或close()
]@AnthonySottile:谢谢链接。我很高兴,我不是唯一一个发现当前行为不一致的人。@AnthonySottile:我已经向Python bug追踪器提交了一份报告: