asyncio.gather
和 asyncio.wait
似乎有相似的用途:我有一堆我想执行/等待的异步事情(不一定要等待一个完成才能下一个开始) .他们使用不同的语法,并且在一些细节上有所不同,但对我来说,拥有两个在功能上有如此巨大重叠的函数似乎非常不符合 pythonic。我错过了什么?
原文由 Claude 发布,翻译遵循 CC BY-SA 4.0 许可协议
asyncio.gather
和 asyncio.wait
似乎有相似的用途:我有一堆我想执行/等待的异步事情(不一定要等待一个完成才能下一个开始) .他们使用不同的语法,并且在一些细节上有所不同,但对我来说,拥有两个在功能上有如此巨大重叠的函数似乎非常不符合 pythonic。我错过了什么?
原文由 Claude 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答884 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
虽然在一般情况下类似(“运行并获得许多任务的结果”),但每个函数在其他情况下都有一些特定的功能:
asyncio.gather()
返回一个 Future 实例,允许对任务进行高级分组:
可以通过调用
group2.cancel()
甚至all_groups.cancel()
取消组中的所有任务。另见.gather(..., return_exceptions=True)
,asyncio.wait()
支持在第一个任务完成后或指定超时后等待停止,允许较低级别的操作精度: