Мне нужно применить функцию к каждому элементу итерации с фиксированным количеством потоков (скажем, 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