python - 限制并发线程数
问题描述
我需要将一个函数应用于具有固定数量的线程(假设 N)同时运行的可迭代的每个元素,就像 multiprocessing.ThreadPool.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
解决方案
推荐阅读
- java - 通过 oncreate 返回一个可序列化的对象
- python - 如何解开具有多个条目的数据框字典?
- go - 找不到嵌套包
- c# - 对聚合表达式进行空检查
- django - 在 Django 管理界面中,有没有办法检查一些列表项并触发将字段内容复制到剪贴板的操作?
- javascript - 不知道如何处理我的项目中的输入
- xamarin - 如何在 Xamarin (Forms) iOS 项目中使用 AirWatch SDK?
- r - For 循环或函数有条件地减去两列的值
- javascript - 从外部样式化嵌套样式组件
- python - Python Web Scraping - html 解析