python multiprocessing.pool的限制没有';行不通

python multiprocessing.pool的限制没有';行不通,python,multiprocessing,Python,Multiprocessing,当我使用multiprocessing.pool进行定量策略研究时,使用htop的linux服务器监视器中出现了一个问题。似乎参数进程不工作,所有CPU都被占用。 例如,如果我设置multiprocessing.pool(processs=8)并使用pool.apply\u async来运行参数长度为6000的回溯测试策略。在回溯测试开始时似乎一切正常,一段时间后,它显示所有24个CPU都被该程序占用,似乎进程=8不工作。 伪代码如下: def stragegy(paras): # so

当我使用multiprocessing.pool进行定量策略研究时,使用htop的linux服务器监视器中出现了一个问题。似乎参数进程不工作,所有CPU都被占用。
例如,如果我设置multiprocessing.pool(processs=8)并使用pool.apply\u async来运行参数长度为6000的回溯测试策略。在回溯测试开始时似乎一切正常,一段时间后,它显示所有24个CPU都被该程序占用,似乎进程=8不工作。
伪代码如下:

def stragegy(paras):
    # some trading logic
    return indicator
if __name == '__main__':
    # paras_list has 6000 different parameters
    # a_list: store the result of strategy
    paras_list = [[..], [..], ...[..]]
    a_list = []
    pool = multiprocessing.Pool(processes=8)  # create 8 processes
    for i in range(len(paras_list)):
        a_list.append(pool.apply_async(func=strategy, args=(paras_list[i])))
    pool.close()
    pool.join()

有人能帮我解决这个问题吗?
非常感谢

如果在单个进程中运行
strategy
函数(删除池逻辑),会启动多少个进程?您正在使用哪些库和框架?@noxdafox在这种情况下,将只启动一个进程。在我的多处理程序中,一开始似乎一切正常,然后在大约50个参数的回测完成后,cpu资源突然全部被占用。@noxdafox我在代码中使用了pandas、numpy、多处理、os和时间库。