python - 使用无限运行的多处理的 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。
解决方案
您需要将代码重写为:
def main():
x = np.arange(64)
pool = mp.Pool(4)
squared = .....
if __name__ == '__main__':
main()
此代码当前正在每个进程中运行。您需要它仅在进行设置的一个进程中运行。
推荐阅读
- python - 我的 chromedriver 立即打开并崩溃
- haskell - Haskell - 尝试使用 Prelude.read 使输出类型 a 也适用于 String
- google-cloud-platform - 如何在谷歌云存储(Python)中获取 blob 的 URI
- java - 获取数组长度时出错抛出异常
- bash - 如何使用 .sh 脚本登录 Linux 中的程序?
- c# - C#:从 Net Core 中的 DbContext 继承,构造函数:没有为此 DbContext 配置数据库提供程序
- python - 无法将小部件添加到 UserCreationForm
- javascript - 如何计算两个日期之间的差异
- javascript - 关于 JavaScript 范围的问题,是否有可能完成我正在尝试做的事情
- javascript - 遍历 QuranGlobal JSON 响应