Я знаю, что этот вопрос задавался много раз, но ответы не применимы. Это ответ на один параллельный цикл с использованием многопроцессорной обработки в StackoverFlow:
import multiprocessing as mp
def processInput(i):
return i * i
if __name__ == '__main__':
inputs = range(1000000)
pool = mp.Pool(processes=4)
results = pool.map(processInput, inputs)
print(results)
Этот код работает нормально. Но если я увеличу диапазон до 1000000000, мои 16 ГБ ОЗУ будут полностью заполнены, и я получу сообщение [Errno 12] Не удается выделить память. Кажется, что функция map запускает как можно больше процессов. Как ограничить количество параллельных процессов?