python - python中的线程(多线程)
问题描述
如果我有 7 个方法和 2 个线程。方法 1 和方法 2 需要由 2 个线程(线程 1,线程 2)执行。取决于哪个线程首先完成。例如:如果线程 2 首先完成执行,它应该选择方法 3 执行,线程 1 应该选择方法 4,它应该继续执行相同的方法,直到所有 7 个方法都被执行。有没有办法做到这一点?任何参考将不胜感激
解决方案
除了来自其他答案的基于队列的解决方案之外,您还可以使用优秀的concurrent.futures
模块为您完成繁重的工作:
with concurrent.futures.ThreadPoolExecutor(2) as pool:
for m in methods:
pool.submit(m)
submit()
线程池上的方法将任务提交到池中并返回一个Future
对象(不要与同名的 asyncio 类型混淆),该对象允许您查询特定任务是否完成,等待它完成,然后选择结果。
如果您不执行任何操作,则with
块将自动等待所有提交的任务在块结束时完成。
推荐阅读
- typeorm - 如何在自动生成的 UUID 中删除破折号 (-) - typeorm
- c# - 如何正确取消 Task.Run 内部有死锁
- c# - 如何在 C# 中设置 Azure 信息保护属性
- java - 有向图中的电路数
- mobile - 我可以使用除 MyApp 类之外的类来启动我的应用程序吗?
- linux - 如何获取shell命令的位置参数
- sql-server - 安装 SQL Server 2017 Developer Edition:如何修复 Visual Studio 运行时(库)“Microsoft Visual C++ 2019 X64 最低运行时”?
- blazor - 使用 jquery 的 Blazor 屏蔽输入不起作用
- java - 如何从 Java 创建 Kotlin 列表?
- pandas - 为什么运行 pandas_udf 时 Pyspark 失败?