我需要将一个函数应用于具有并行运行的固定数量线程(例如N)的iterable的每个元素,就像multiprocessing.ThreadPool.map()一样,但是我的函数可以对全局对象进行赋值,而不会返回任何东西。如何在不使用map且不浪费内存的情况下限制并发线程数?
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