Ограничить количество одновременных потоков многопроцессорности ⇐ Python

Программы на Python
Anonymous
Ограничить количество одновременных потоков многопроцессорности

Сообщение Anonymous »

Мне нужно применить функцию к каждому элементу итерации с фиксированным количеством потоков (скажем, N), работающих одновременно, как это делает multiprocessing.ThreadPool.map(), но моя функция выполняет присвоения глобальным объектам и не делает этого. вернуть что-нибудь. Как я могу ограничить количество одновременных потоков, не используя карту и не тратя память на список None?

def function(x):
print(x)
# do some actions, don't return anything

iterable = list(range(1000_000))

import multiprocessing.pool as mp
import os

N = os.cpu_count()

with mp.ThreadPool(N) as pool:
_ = pool.map(function, iterable)
# returns unnecessary list of Nones


Подробнее здесь: https://stackoverflow.com/questions/584 ... processing

Вернуться в «Python»