При попытке запустить следующую программу-пример зависает. Я новичок в многопроцессорности Python и не могу понять это. Программа подсчитывает, сколько чисел присутствует в заданном диапазоне в каждой строке данных, и я работаю с руководством в https://www.machinelearningplus.com/python/parallel-processing-python/
import numpy as np
import time
import multiprocessing as mp
def howmany_within_range(row, minimum, maximum):
"""Returns how many numbers lie within `maximum` and `minimum` in a given `row`"""
count = 0
for n in row:
if minimum <= n <= maximum:
count = count + 1
return count
def main():
pool = mp.Pool(2)
# Prepare data
np.random.RandomState(100)
arr = np.random.randint(0, 10, size=[200000, 5])
data = arr.tolist()
print (data[:5])
start = time.time()
results = [pool.apply(howmany_within_range, args=(row, 4, 8)) for row in data]
pool.close()
end = time.time()
print(results[:10], end-start)
if __name__=='__main__':
main()