限制并发线程多处理数量

时间:2019-10-17 14:45:50

标签: python multithreading multiprocessing python-multiprocessing

我需要将一个函数应用于具有并行运行的固定数量线程(例如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

0 个答案:

没有答案