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