python - 在 python 中批处理线程

标签 python multithreading

我正在更新一些现有代码,如下所示:

for i in list
  thread.start_new_thread(main, (i[0],i[1],i[2],2))

这会导致为列表中的每个项目创建线程,但在创建所有线程之前不会执行。我想以小组的形式执行线程,或者让它们在创建后直接执行。

(这里有很多 python 线程讨论,很抱歉,如果我错过了已经被问到的这类问题......)

最佳答案

您可能会找到 concurrent.futures模块有用。它也可用于 Python 2,名称为 futures .例如,要同时为 MY_LIST 上的每个项目调用函数 main,但最多有 5 个线程,您可以这样写:

from concurrent.futures import ThreadPoolExecutor

with ThreadPoolExecutor(max_workers=5) as executor:
    for result in executor.map(main, MY_LIST):
        # Do something with result
        print(result)

关于python - 在 python 中批处理线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13670513/

相关文章:

java - 阻止线程执行某些方法

java - java中同步对象是如何工作的

Java:从Runnable返回结果

java - Java 中具有 Long 或 AtomicLong 值的多键映射

python - python 中的搁置模块不起作用 : "db type cannot be determined"

python - 将 CIDR/8,/9 转换并扩展为/10

python - 如何从 python pandas 数据框中获取行并将其放入一个新数据框的列中

c# - 如何让线程休眠直到收到异步函数的回调?

python - 无法从 mysql-utilities : "No module named mysql.utilities.common.tools" 运行任何东西

javascript - 在 Django 中从 Javascript fetch 获取 HttpResponse