Python 使用固定内存资源执行函数

Python 使用固定内存资源执行函数,python,python-2.7,memory,Python,Python 2.7,Memory,我有一个正在预处理的模型列表: def preprocess(model): from somewhere import apply_calc try: return apply_calc(model) except: return False for model in all_models preprocessed_model = preprocess(model) 我的问题是,有些模型太大了,以至于我的“预处理”函数使用了

我有一个正在预处理的模型列表:

def preprocess(model):
    from somewhere import apply_calc
    try:
        return apply_calc(model)
    except:
        return False 

for model in all_models
    preprocessed_model = preprocess(model)
我的问题是,有些模型太大了,以至于我的“预处理”函数使用了我所有的MEM(32G)和SWP(32G),即使我有“try-except”部分,我的整个脚本也会被带有OOM的linux杀死

我解决这个问题的想法是将“preprocess”函数作为线程运行,并且只使用固定数量的内存资源。大概是这样的:

运行线程(函数=预处理,参数=模型,内存限制=40G)

现在,要么“预处理”能够使用40GB内存进行计算,它将返回预处理的模型,要么它将失败,只返回一个“False”


您能告诉我这看起来是否是一种正常的方法,以及如何在内存资源有限的情况下运行线程吗?我正在使用python 2.7,看起来像是X,Y问题。@James:你是说应用程序不应该吃掉整个内存和SWP?问题是,这是一个第三方软件,我没有那么多时间来重新实现它。