Я пытаюсь использовать многопроцессорность в 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
.
Сначала я подумал, что это потому, что, возможно, я не могу использовать список списков в качестве аргумента, но первый для l oop показал мне, что я могу.
Функция apply_asyn c как-то пытается распаковать часть списка, которая передается как аргумент foo? Или в чем еще может быть проблема?