Python 多处理pickled方法的可用内存

Python 多处理pickled方法的可用内存,python,methods,multiprocessing,pickle,Python,Methods,Multiprocessing,Pickle,我用的是这个问题的第一个答案 能够在我自己的一个类的方法上使用多进程模块 例如,假设我有以下几点: 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

我用的是这个问题的第一个答案

能够在我自己的一个类的方法上使用多进程模块

例如,假设我有以下几点:

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时,都会有一些内存被占用,而且永远不会释放。
有没有办法显式释放它?

每次调用myFunc时都会创建一个新池。当myFunc退出时,它不会自动删除,因为子进程和相关线程仍然存在


创建一个池,为这100个呼叫保留它。关闭它

你怎么知道它永远不会被释放?Python内存管理应该为您解决问题。我用“top”监视它,它只在程序退出时才被释放