首页 > 解决方案 > 使用无限运行的多处理的 Python 代码

问题描述

我正在尝试使用多处理在 jupyter notebook 中执行以下代码,但循环无限运行。
我需要帮助解决这个问题。

import multiprocessing as mp
import numpy as np

def square(x):
    return np.square(x)

x = np.arange(64)

pool = mp.Pool(4)
squared = pool.map(square, [x[16*i:16*i+16] for i in range(4)])

的输出为 mp.cpu_count()4。

标签: pythonmultiprocessingreinforcement-learningq-learning

解决方案


您需要将代码重写为:

def main():
    x = np.arange(64)
    pool = mp.Pool(4)
    squared = .....

if __name__ == '__main__':
    main()

此代码当前正在每个进程中运行。您需要它仅在进行设置的一个进程中运行。


推荐阅读