python - 我如何等待任何结束而不是特定线程的线程?
问题描述
我的脚本已经启动了许多线程。它一直在计数。现在正在运行的最大线程数。还有更多要运行。脚本如何等待任何一个正在运行的线程结束,以便它可以安全地启动另一个?它threading.Thread()
用于创建每个线程,但如果有更好的模块可以更改。我正在使用 Python 3.6.x。
解决方案
要创建进程池并将任务传递给它们:
def processing_task(arg1, arg2):
...
from multiprocessing import Pool
with Pool() as worker_pool: # By default creates processes == number of CPUs
while True:
task = some_queue_implementation.get() # Some blocking method that receives tasks
worker_pool.apply_async(processing_task, task.arg1, task.arg2)
这将创建子进程,这些子进程将处于空闲状态,直到它们被传递一个任务
推荐阅读
- pyqt5 - 运行pyqt5程序,报错:此应用程序无法启动,因为它无法在“”中找到或加载Qt平台插件“xcb”
- python - 将 tensorflow 运算符分别应用于批处理中的每个数据,但需要并行运行它们
- javascript - Django admin中Select2 4.0.5常见错误
- javascript - 在jquery中添加'/'和第二个字符
- reactjs - 基于上下文属性的路由
- finance - 用户定义的函数返回序列而不是值
- java - 如何在 Linux 平台上运行 .testssl.sh 命令并将输出保存在 Json 文件中并将 Json 数据保存在数据库中
- c# - Microsoft Visual Studio 安装程序项目 - 如何为使用 Process.Start() 执行但没有修复选项的 MSI 提供重新启动提示
- azure - 通过数据中心 IP 地址连接到 azure sql server
- javascript - 未捕获的类型错误:无法读取未定义的属性“拼接”