Python:"int not callable" 带池的多处理

Python: "int not callable" with multiprocessing with pool

我在使用池进行一些多处理时遇到错误(pop 索引超出范围),当我试图将我的代码简化为 post 时,我在这里遇到了另一个错误,所以这有点令人费解,请参阅代码在这里:

def some_function(a, b):
    return a*b

neigbhourhood = [[object() for _ in range(3)] for _ in range(3)]
result = [[object() for _ in range(3)] for _ in range(3)]
pool = Pool()
for i in range(0, 3):
    for j in range(0, 3):
        neigbhourhood[i][j] = pool.apply_async(some_function(i, j))

for k in range(0, 3):
    for l in range(0, 3):
        result[k][l] = neigbhourhood[k][l].get()
pool.close()

追溯是关于第 34 行(带有 get 的行)处不可调用的 int 对象。

编辑:好的,这只是 pool.apply_async 参数中的一个输入错误,现在可以正常工作了,但我的真实代码仍然随机崩溃,并且在简化代码时我无法重复该错误, 没看懂

问题在于您调用的方式 apply_async。它要求您传递函数回调和将传递给提供的函数的参数。

pool.apply.async(some_function, [x, y])