在使用pool的常见情况下,python将返回的args标记为已删除,而gc在一段时间内会将此对象从内存中删除,例如
def main():
for x in pool.imap_unordered(func, args):
pass
if __name__ == "__main__":
main()
但是在没有累积结果的情况下,如何在启动池中工作垃圾收集器呢?
def main():
pool.imap_unordered(func, args)
if __name__ == "__main__":
main()
如果池持续工作,是否有机会获得过载内存?
最佳答案
正确迭代生成器而不获取结果的正确方法是标准的for _ in map(): pass
,因为Python不会为地图生成器中的每个对象分配新的内存,而是将每个对象设置在一个区域中。
关于python - imap_unordered中的Python垃圾收集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46962814/