我正在使用这个问题的第一个答案
Overcoming Python's limitations regarding instance methods
能够在我自己的一个类的方法上使用多进程模块。
作为一个例子,让我说我有以下内容:
from multiprocessing import Pool
def myParallelFunc(my_list, a, b, inst):
# do something
return True
def myFunc:
# instantiate custom class
my_instance = MyObject()
pool = Pool()
pool.map(functools.partial(myParallelFunc, a=5, b=7, inst=my_instance), my_list)
# SOLUTION!!!
pool.close()
现在我有另一个调用myFunc的程序让我说100次。 每次我调用myFunc时,一些内存被占用并且永远不会被释放。 有没有办法明确释放它?
答案 0 :(得分:1)
每次调用myFunc时都会创建一个新池。当myFunc退出时,它不会自动删除,因为子进程和相关线程仍然存在。
创建一个游泳池,为这100个电话保留它,然后。关闭它