我在这里阅读了很多关于multiprocessing.pool的帖子,但我仍然不知道代码中的问题在哪里。
我想在python中使用多处理池并行化一个函数。该函数接受一个参数并返回两个值。我希望这个参数是一个整数,并希望迭代这个整数。我已经尝试了我在这里看过的例子,但它对我不起作用(显然我做错了什么,但是什么?) 我的代码:
import multiprocessing
from multiprocessing import Pool
def function(num):
res1 = num ** 2 # calculate someting
res2 = num + num # calculate someting
return res1, res2
if __name__ == '__main__':
num = 10
pool = multiprocessing.Pool(processes=4)
# next line works, but with [something,something,...] as an argument
result = pool.map(function, [1, 100, 10000])
# next line doesn't work and I have no idea why!
result2 = pool.map(function, range(num))
pool.close()
pool.join()
print(result2)
我在计算TypeError: 'float' object is not subscriptable
时得到result2
。
不胜感激求助!