Вот мой код:
import multiprocessing as mp
import numpy as np
def foo(p):
global i
return p*i
global lower, upper
lower = 1
upper = 4
for i in range(lower, upper):
if __name__ == '__main__':
dataset = np.linspace(1, 100, 100)
agents = mp.cpu_count() - 1
chunksize = 5
pool = mp.Pool(processes=agents)
result = pool.map(foo, dataset, chunksize)
print result
print i
pool.close()
pool.join()
Консоль распечатывает массив [3, 6, 9, ..., 300] три раза с целыми числами 1,2,3 между каждым массивомраспечатывать.Так что я правильно перебираю нижний и верхний (не включительно), но я ожидал, что сначала он распечатает массив [1, 2, 3, ..., 100], а затем [2, 4, 6, ...,200] и, наконец, [3, 6, 9, ..., 300].Я не понимаю, почему он только передает окончательное значение i в foo и затем отображает это трижды.