【发布时间】:2019-09-12 20:09:28
【问题描述】:
假设我们想对所有自然数进行无限迭代,并为每个数字打开一个线程,直到一个限制。由于有无限的自然数,这个列表就像一个生成器,那么我们如何在生成数字的同时限制打开线程的数量呢?
我正在尝试类似的东西:
from multiprocessing import Pool
def func(i):
""" Do something with i"""
p = Pool(10)
i = 0
while True:
p.imap_unordered(func,i)
i += 1
我尝试了许多其他不同的方法(线程池、信号量等),但它们似乎都忽略了最大线程数。我想让一些东西打开 MAX_THREADS 个线程,每次线程完成时,它都会再次迭代并开始一个新线程。我怎样才能做到这一点?
【问题讨论】:
-
您已经在池中设置了最大进程数。您根本没有使用线程。是什么让您认为您的设置被忽略并产生了任意数量的线程?
标签: python multithreading