我这有个大型任务,通过线程池的方式去跑的,代码如下:
execute = ThreadPoolExecutor(max_workers=3)
all_task_list = []
index = 0
for info in ips:
all_task_list.append(execute.submit(function1, params))
index += 1
if index%1000 ==0:
gc.collect()
wait(all_task_list, return_when=ALL_COMPLETED)
def function1(params):
XXXX
return
这个任务跑起来之后内存,会慢慢一直增长,任务执行的越来越慢,直到swap内存也被撑爆,function1这个方法中是解析一段字符串,然后保存数据库的,会有一个全局参数,但是这个参数肯定不大,谁知道为什么内存无法被释放?
大佬,有解决方案吗, 我也遇到了这个问题