python - Python多处理apply_async:不能将列表列表作为参数传递?
问题描述
我正在尝试在 Python 中使用多处理。以下代码
import numpy as np
import multiprocessing as mp
def foo(g):
for i in g:
print(i)
bubbles = [[1, 1], [2, 3], [6, 5]]
bubblesParts = np.array_split(bubbles, 2)
for part in bubblesParts:
foo(part)
if __name__ == '__main__':
with mp.Pool(mp.cpu_count()) as p:
for part in bubblesParts:
print(part)
p.apply_async(foo, args=(part)).get()
正在给我TypeError: foo() takes 1 positional argument but 2 were given
。
起初我以为是因为我不能使用列表列表作为参数,但第一个 for 循环告诉我我可以。
apply_async 函数是否以某种方式试图解包作为 foo 的参数传递的列表部分?或者还有什么问题?
解决方案
推荐阅读
- python - 处理函数时检测到错误
70_SetVals:, E121: Undefined variable: g:pydiction_location -- 按下选项卡按钮时发生错误 - html - 使网格元素占据整个网格
- powershell - 如何在输出 csv 中添加空行?
- php - 使用带有 2 个提交按钮的 Ajax 发送表单会发送两个按钮的值。有没有办法防止它?
- python-3.x - 使用 pyQt 编写面板/扩展坞
- jquery - jquery-dragarrange中的jquery dragend事件
- python - FileNotFoundError: [WinError 3] 系统找不到指定的路径。视窗操作系统
- c# - 显示特定的主要刻度 c# 图表
- javascript - 如何使用简单的目标文件数组在 React js 中提供动态路由
- c++ - 仅在标题中的类中添加不完整类型时无法解析外部