Python 为什么multiprocessing.Pool.\uuuu exit\uuuu()调用terminate()而不是close()?

Python 为什么multiprocessing.Pool.\uuuu exit\uuuu()调用terminate()而不是close()?,python,python-multiprocessing,Python,Python Multiprocessing,文件说明如下(略为缩写): 池对象支持上下文管理协议\uuuu enter\uuuu()返回池对象,然后\uuuu exit\uuuuuu()调用terminate() 为什么\uuuu退出

文件说明如下(略为缩写):

池对象支持上下文管理协议<代码>\uuuu enter\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追踪器提交了一份报告: